Skip to content

Commit 17d2da3

Browse files
committed
Extract remaining tests into separate file
1 parent 3663530 commit 17d2da3

File tree

13 files changed

+160
-175
lines changed

13 files changed

+160
-175
lines changed

java_runtime/src/classes/java/io/string_writer.rs

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -66,36 +66,3 @@ impl StringWriter {
6666
Ok(string)
6767
}
6868
}
69-
70-
#[cfg(test)]
71-
mod tests {
72-
use alloc::vec;
73-
74-
use jvm::{JavaChar, Result, runtime::JavaLangString};
75-
76-
use test_utils::test_jvm;
77-
78-
#[tokio::test]
79-
async fn test_string_writer() -> Result<()> {
80-
let jvm = test_jvm().await?;
81-
82-
let string_writer = jvm.new_class("java/io/StringWriter", "()V", ()).await.unwrap();
83-
84-
let mut buf = jvm.instantiate_array("C", 3).await?;
85-
86-
jvm.store_array(&mut buf, 0, vec![b'a' as JavaChar, b'b' as JavaChar, b'c' as JavaChar])
87-
.await?;
88-
89-
let _: i32 = jvm.invoke_virtual(&string_writer, "write", "([CII)I", (buf.clone(), 0, 3)).await.unwrap();
90-
91-
let _: i32 = jvm.invoke_virtual(&string_writer, "write", "([CII)I", (buf, 1, 2)).await.unwrap();
92-
93-
let string = jvm.invoke_virtual(&string_writer, "toString", "()Ljava/lang/String;", ()).await.unwrap();
94-
95-
let string = JavaLangString::to_rust_string(&jvm, &string).await?;
96-
97-
assert_eq!(string, "abcbc"); // cspell: disable-line
98-
99-
Ok(())
100-
}
101-
}

java_runtime/src/classes/java/net/url.rs

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -297,30 +297,3 @@ impl URL {
297297
}
298298
}
299299
}
300-
301-
#[cfg(test)]
302-
mod test {
303-
use jvm::{Result, runtime::JavaLangString};
304-
305-
use test_utils::test_jvm;
306-
307-
#[tokio::test]
308-
async fn test_file_url() -> Result<()> {
309-
let jvm = test_jvm().await?;
310-
311-
let url_spec = JavaLangString::from_rust_string(&jvm, "file:test.txt").await?;
312-
let url = jvm.new_class("java/net/URL", "(Ljava/lang/String;)V", (url_spec,)).await?;
313-
314-
let protocol = jvm.invoke_virtual(&url, "getProtocol", "()Ljava/lang/String;", ()).await?;
315-
let host = jvm.invoke_virtual(&url, "getHost", "()Ljava/lang/String;", ()).await?;
316-
let port: i32 = jvm.invoke_virtual(&url, "getPort", "()I", ()).await?;
317-
let file = jvm.invoke_virtual(&url, "getFile", "()Ljava/lang/String;", ()).await?;
318-
319-
assert_eq!(JavaLangString::to_rust_string(&jvm, &protocol).await?, "file");
320-
assert_eq!(port, -1);
321-
assert_eq!(JavaLangString::to_rust_string(&jvm, &host).await?, "");
322-
assert_eq!(JavaLangString::to_rust_string(&jvm, &file).await?, "test.txt");
323-
324-
Ok(())
325-
}
326-
}

java_runtime/src/classes/java/util/gregorian_calendar.rs

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -108,61 +108,3 @@ impl GregorianCalendar {
108108
Ok(())
109109
}
110110
}
111-
112-
#[cfg(test)]
113-
mod test {
114-
use jvm::Result;
115-
116-
use test_utils::test_jvm;
117-
118-
#[tokio::test]
119-
async fn test_gregorian_calendar() -> Result<()> {
120-
let jvm = test_jvm().await?;
121-
122-
let timestamp = 0i64;
123-
let calendar = jvm
124-
.invoke_static("java/util/Calendar", "getInstance", "()Ljava/util/Calendar;", ())
125-
.await?;
126-
let date = jvm.new_class("java/util/Date", "(J)V", (timestamp,)).await?;
127-
128-
let _: () = jvm.invoke_virtual(&calendar, "setTime", "(Ljava/util/Date;)V", (date,)).await?;
129-
let year: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (1,)).await?;
130-
assert_eq!(1970, year);
131-
132-
let month: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (2,)).await?;
133-
assert_eq!(0, month);
134-
135-
let day: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (5,)).await?;
136-
assert_eq!(1, day);
137-
138-
let timestamp = 737521516000i64;
139-
let date = jvm.new_class("java/util/Date", "(J)V", (timestamp,)).await?;
140-
141-
let _: () = jvm.invoke_virtual(&calendar, "setTime", "(Ljava/util/Date;)V", (date,)).await?;
142-
143-
let year: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (1,)).await?;
144-
assert_eq!(1993, year);
145-
146-
let month: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (2,)).await?;
147-
assert_eq!(4, month);
148-
149-
let day: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (5,)).await?;
150-
assert_eq!(16, day);
151-
152-
let hour: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (11,)).await?;
153-
assert_eq!(3, hour);
154-
155-
let minute: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (12,)).await?;
156-
assert_eq!(5, minute);
157-
158-
let second: i32 = jvm.invoke_virtual(&calendar, "get", "(I)I", (13,)).await?;
159-
assert_eq!(16, second);
160-
161-
let _: () = jvm.invoke_virtual(&calendar, "set", "(II)V", (1, 1999)).await?;
162-
let date = jvm.invoke_virtual(&calendar, "getTime", "()Ljava/util/Date;", ()).await?;
163-
let timestamp: i64 = jvm.invoke_virtual(&date, "getTime", "()J", ()).await?;
164-
assert_eq!(926823916000, timestamp);
165-
166-
Ok(())
167-
}
168-
}

java_runtime/src/classes/java/util/jar/manifest.rs

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -89,37 +89,3 @@ impl Manifest {
8989
jvm.get_field(&this, "attrs", "Ljava/util/jar/Attributes;").await
9090
}
9191
}
92-
93-
#[cfg(test)]
94-
mod test {
95-
use jvm::{Result, runtime::JavaLangString};
96-
97-
use test_utils::test_jvm;
98-
99-
#[tokio::test]
100-
async fn test_manifest_parsing() -> Result<()> {
101-
let jvm = test_jvm().await?;
102-
103-
let data = b"Main-Class: test";
104-
let mut bytes = jvm.instantiate_array("B", data.len() as _).await?;
105-
jvm.array_raw_buffer_mut(&mut bytes).await?.write(0, data).unwrap();
106-
107-
let byte_array_stream = jvm.new_class("java/io/ByteArrayInputStream", "([B)V", (bytes,)).await?;
108-
let manifest = jvm
109-
.new_class("java/util/jar/Manifest", "(Ljava/io/InputStream;)V", (byte_array_stream,))
110-
.await?;
111-
112-
let main_attributes = jvm
113-
.invoke_virtual(&manifest, "getMainAttributes", "()Ljava/util/jar/Attributes;", ())
114-
.await?;
115-
116-
let key = JavaLangString::from_rust_string(&jvm, "Main-Class").await?;
117-
let value = jvm
118-
.invoke_virtual(&main_attributes, "getValue", "(Ljava/lang/String;)Ljava/lang/String;", (key,))
119-
.await?;
120-
121-
assert_eq!(JavaLangString::to_rust_string(&jvm, &value).await?, "test");
122-
123-
Ok(())
124-
}
125-
}

java_runtime/src/classes/java/util/random.rs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -58,26 +58,3 @@ impl Random {
5858
Ok(value)
5959
}
6060
}
61-
62-
#[cfg(test)]
63-
mod test {
64-
use jvm::Result;
65-
66-
use test_utils::test_jvm;
67-
68-
#[tokio::test]
69-
async fn test_random() -> Result<()> {
70-
let jvm = test_jvm().await?;
71-
72-
let seed = 42i64;
73-
let random = jvm.new_class("java/util/Random", "(J)V", (seed,)).await?;
74-
75-
let next: i32 = jvm.invoke_virtual(&random, "nextInt", "()I", ()).await?;
76-
assert_eq!(next, -1170105035);
77-
78-
let next: i32 = jvm.invoke_virtual(&random, "nextInt", "()I", ()).await?;
79-
assert_eq!(next, 234785527);
80-
81-
Ok(())
82-
}
83-
}

java_runtime/tests/classes/java/io/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ mod test_file_input_stream;
66
mod test_input_stream_reader;
77
mod test_print_writer;
88
mod test_random_access_file;
9+
mod test_string_writer;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
use alloc::vec;
2+
3+
use jvm::{JavaChar, Result, runtime::JavaLangString};
4+
5+
use test_utils::test_jvm;
6+
7+
#[tokio::test]
8+
async fn test_string_writer() -> Result<()> {
9+
let jvm = test_jvm().await?;
10+
11+
let string_writer = jvm.new_class("java/io/StringWriter", "()V", ()).await.unwrap();
12+
13+
let mut buf = jvm.instantiate_array("C", 3).await?;
14+
15+
jvm.store_array(&mut buf, 0, vec![b'a' as JavaChar, b'b' as JavaChar, b'c' as JavaChar])
16+
.await?;
17+
18+
let _: i32 = jvm.invoke_virtual(&string_writer, "write", "([CII)I", (buf.clone(), 0, 3)).await.unwrap();
19+
20+
let _: i32 = jvm.invoke_virtual(&string_writer, "write", "([CII)I", (buf, 1, 2)).await.unwrap();
21+
22+
let string = jvm.invoke_virtual(&string_writer, "toString", "()Ljava/lang/String;", ()).await.unwrap();
23+
24+
let string = JavaLangString::to_rust_string(&jvm, &string).await?;
25+
26+
assert_eq!(string, "abcbc"); // cspell: disable-line
27+
28+
Ok(())
29+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
mod test_attributes;
22
mod test_jar_file;
3+
mod test_manifest;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
use jvm::{Result, runtime::JavaLangString};
2+
3+
use test_utils::test_jvm;
4+
5+
#[tokio::test]
6+
async fn test_manifest_parsing() -> Result<()> {
7+
let jvm = test_jvm().await?;
8+
9+
let data = b"Main-Class: test";
10+
let mut bytes = jvm.instantiate_array("B", data.len() as _).await?;
11+
jvm.array_raw_buffer_mut(&mut bytes).await?.write(0, data).unwrap();
12+
13+
let byte_array_stream = jvm.new_class("java/io/ByteArrayInputStream", "([B)V", (bytes,)).await?;
14+
let manifest = jvm
15+
.new_class("java/util/jar/Manifest", "(Ljava/io/InputStream;)V", (byte_array_stream,))
16+
.await?;
17+
18+
let main_attributes = jvm
19+
.invoke_virtual(&manifest, "getMainAttributes", "()Ljava/util/jar/Attributes;", ())
20+
.await?;
21+
22+
let key = JavaLangString::from_rust_string(&jvm, "Main-Class").await?;
23+
let value = jvm
24+
.invoke_virtual(&main_attributes, "getValue", "(Ljava/lang/String;)Ljava/lang/String;", (key,))
25+
.await?;
26+
27+
assert_eq!(JavaLangString::to_rust_string(&jvm, &value).await?, "test");
28+
29+
Ok(())
30+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
mod jar;
2+
mod test_gregorian_calendar;
23
mod test_hashtable;
4+
mod test_random;
35
mod test_stack;
46
mod test_timer;
7+
mod test_url;
58
mod test_vector;
69
mod zip;

0 commit comments

Comments
 (0)