Allow multiple atomic transactions to be used with one root object.
This allows transactions that include barriers to be performed
while holding an exclusive system lock.
2 assert(loadfile("/testfile"))
3 assert(io.input("/testfile"))
4 assert(io.output("/file1"))
5 file = assert(io.open("/file1", "w"))
7 assert(io.output(file))
8 file:write("Hello world\n")
12 for line in assert(io.lines("/file1")) do
13 assert(line == "Hello world")
15 file, err = io.popen("/testfile", "r")
17 assert(string.find(err, " not supported") == 1)
19 assert(file:read() == "Abracadabra!")
22 assert(os.rename("/file1","/file2"))
23 assert(os.remove("/file2"))
24 assert(posix.mkdir("/testdir"))
25 assert(posix.stat("/testdir"))
26 assert(posix.chdir("/testdir"))
27 assert(posix.getcwd() == "/testdir")
28 assert(posix.mkdir("dir1"))
29 assert(posix.link("/testdir/dir1", "/testdir/link", true))
30 assert(posix.readlink("/testdir/link") == "/testdir/dir1")
31 assert(posix.unlink("/testdir/link"))
32 assert(posix.link("/testfile", "/testdir/magic", false))
33 assert(posix.chmod("/testfile","a+x"))
34 assert(posix.access("/testfile","x"))
37 assert(posix.exec("/testfile"))
41 assert(posix.chdir("/"))
42 posix.setenv("PATH","/bin:/usr/bin:/testdir",true)
45 assert(posix.execp("magic"))
49 assert(posix.utime("/testfile"))
50 assert(posix.pathconf("/testdir/magic"))
51 assert(posix.mkfifo("/testdir/fifo"))
53 assert(posix.dir("/testdir"))
55 assert(posix.files("/testdir"))
56 for _,f in pairs(posix.glob("/testdir/*")) do
57 assert(string.find(f, "/testdir/") == 1)
59 assert(posix.rmdir("/testdir/dir1"))
60 assert(posix.chown("/testfile",-1,-1))