v2 / vlib / os / file_le_be_test.v
73 lines · 68 sloc · 1.67 KB · d6c3e6fe5afd2048300422d141d99688530906ab
Raw
1import os
2
3const tfolder = os.join_path(os.vtmp_dir(), 'os_file_le_be')
4
5fn testsuite_begin() {
6 os.mkdir_all(tfolder) or {}
7 os.chdir(tfolder)!
8 dump(tfolder)
9 assert os.is_dir(tfolder)
10}
11
12fn testsuite_end() {
13 os.rmdir_all(tfolder) or {}
14}
15
16fn test_write_be_read_be() {
17 fname := os.join_path(tfolder, 'f_be')
18 os.write_file(os.join_path(tfolder, 'abc'), 'hello')!
19 mut f := os.open_file(fname, 'wb')!
20 f.write_be[u8](0x08)!
21 f.write_be[u16](0x1617)!
22 f.write_be[u32](0x30313233)!
23 f.write_be[u64](0x5859606162636465)!
24 f.write_u8(123)!
25 f.write_u8(42)!
26 f.close()
27 // vfmt off
28 assert os.read_bytes(fname)! == [
29 u8(0x08),
30 0x16, 0x17,
31 0x30, 0x31, 0x32, 0x33,
32 0x58, 0x59, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65,
33 123, 42
34 ]
35 // vfmt on
36 mut r := os.open_file(fname, 'rb')!
37 assert r.read_be[u8]()! == 0x08
38 assert r.read_be[u16]()! == 0x1617
39 assert r.read_be[u32]()! == 0x30313233
40 assert r.read_be[u64]()! == 0x5859606162636465
41 assert r.read_u8()! == 123
42 assert r.read_u8()! == 42
43 r.close()
44}
45
46fn test_write_le_read_le() {
47 fname := os.join_path(tfolder, 'f_le')
48 mut f := os.open_file(fname, 'wb')!
49 f.write_le[u8](0x08)!
50 f.write_le[u16](0x1617)!
51 f.write_le[u32](0x30313233)!
52 f.write_le[u64](0x5859606162636465)!
53 f.write_u8(12)!
54 f.write_u8(34)!
55 f.close()
56 // vfmt off
57 assert os.read_bytes(fname)! == [
58 u8(0x08),
59 0x17, 0x16,
60 0x33, 0x32, 0x31, 0x30,
61 0x65, 0x64, 0x63, 0x62, 0x61, 0x60, 0x59, 0x58,
62 12, 34
63 ]
64 // vfmt on
65 mut r := os.open_file(fname, 'rb')!
66 assert r.read_le[u8]()! == 0x08
67 assert r.read_le[u16]()! == 0x1617
68 assert r.read_le[u32]()! == 0x30313233
69 assert r.read_le[u64]()! == 0x5859606162636465
70 assert r.read_u8()! == 12
71 assert r.read_u8()! == 34
72 r.close()
73}
74