diff options
author | Mike Buland <mike@xagasoft.com> | 2024-10-01 11:45:17 -0700 |
---|---|---|
committer | Mike Buland <mike@xagasoft.com> | 2024-10-01 11:45:17 -0700 |
commit | 03cafb600101c4bc659521b833a1f3a8c56938be (patch) | |
tree | ef8bc84d129e84cd3b5a937ffaa3a66be6a45920 /src/tests | |
parent | 00651aeaf50f8481a2c894f9462cd3b8eb6971d6 (diff) | |
download | libbu++-03cafb600101c4bc659521b833a1f3a8c56938be.tar.gz libbu++-03cafb600101c4bc659521b833a1f3a8c56938be.tar.bz2 libbu++-03cafb600101c4bc659521b833a1f3a8c56938be.tar.xz libbu++-03cafb600101c4bc659521b833a1f3a8c56938be.zip |
More fixes opening files & exclusive mode.
Diffstat (limited to 'src/tests')
-rw-r--r-- | src/tests/myriadfs.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/tests/myriadfs.cpp b/src/tests/myriadfs.cpp new file mode 100644 index 0000000..1266e4b --- /dev/null +++ b/src/tests/myriadfs.cpp | |||
@@ -0,0 +1,62 @@ | |||
1 | #include "bu/file.h" | ||
2 | #include "bu/membuf.h" | ||
3 | #include "bu/myriadfs.h" | ||
4 | #include "bu/myriadstream.h" | ||
5 | #include "bu/sio.h" | ||
6 | |||
7 | using namespace Bu; | ||
8 | |||
9 | int main() | ||
10 | { | ||
11 | // Bu::MemBuf mb; | ||
12 | Bu::File mb("store.myr", File::Read|File::Write|File::Create ); | ||
13 | Bu::MyriadFs mfs( mb, 512 ); | ||
14 | |||
15 | sio << "Creating dirs..." << sio.nl; | ||
16 | mfs.create("/etc", Bu::MyriadFs::typeDir|0755 ); | ||
17 | mfs.create("/dev", Bu::MyriadFs::typeDir|0755 ); | ||
18 | mfs.create("/usr", Bu::MyriadFs::typeDir|0755 ); | ||
19 | |||
20 | mfs.create("/dev/null", Bu::MyriadFs::typeChrDev|0666, 1, 3 ); | ||
21 | mfs.create("/dev/zero", Bu::MyriadFs::typeChrDev|0666, 1, 5 ); | ||
22 | mfs.create("/dev/sda", Bu::MyriadFs::typeBlkDev|0660, 8, 0 ); | ||
23 | |||
24 | sio << "Creating files..." << sio.nl; | ||
25 | { | ||
26 | Bu::MyriadStream ms = mfs.open("/hello", Bu::MyriadFs::Read ); | ||
27 | ms.write("world!"); | ||
28 | } | ||
29 | { | ||
30 | Bu::MyriadStream ms = mfs.open("/etc/hello", Bu::MyriadFs::Read ); | ||
31 | ms.write("world, again!"); | ||
32 | } | ||
33 | { | ||
34 | Bu::MyriadStream ms = mfs.open("/etc/trunc", Bu::MyriadFs::Write ); | ||
35 | ms.write("[longer text shouldn't be seen]"); | ||
36 | } | ||
37 | { | ||
38 | Bu::MyriadStream ms = mfs.open("/etc/trunc", Bu::MyriadFs::Write|Bu::MyriadFs::Create|Bu::MyriadFs::Truncate ); | ||
39 | ms.write("[short text]"); | ||
40 | } | ||
41 | |||
42 | sio << "Reading files..." << sio.nl; | ||
43 | { | ||
44 | Bu::MyriadStream ms = mfs.open("/hello", Bu::MyriadFs::Read ); | ||
45 | char buf[512]; | ||
46 | buf[ms.read( buf, 512 )] = '\0'; | ||
47 | sio << "read: '" << buf << "'" << sio.nl; | ||
48 | } | ||
49 | { | ||
50 | Bu::MyriadStream ms = mfs.open("/etc/hello", Bu::MyriadFs::Read ); | ||
51 | char buf[512]; | ||
52 | buf[ms.read( buf, 512 )] = '\0'; | ||
53 | sio << "read: '" << buf << "'" << sio.nl; | ||
54 | } | ||
55 | { | ||
56 | Bu::MyriadStream ms = mfs.open("/etc/trunc", Bu::MyriadFs::Read ); | ||
57 | char buf[512]; | ||
58 | buf[ms.read( buf, 512 )] = '\0'; | ||
59 | sio << "read: '" << buf << "'" << sio.nl; | ||
60 | } | ||
61 | } | ||
62 | |||