librazor/test.lua
author J. Ali Harlow <ali@juiblex.co.uk>
Thu Feb 09 20:42:08 2012 +0000 (2012-02-09)
changeset 416 d0aa9e0a6d04
permissions -rw-r--r--
Emulate atomic transactions
ali@352
     1
dofile("/testfile")
ali@352
     2
assert(loadfile("/testfile"))
ali@352
     3
assert(io.input("/testfile"))
ali@352
     4
assert(io.output("/file1"))
ali@352
     5
file = assert(io.open("/file1", "w"))
ali@352
     6
assert(io.input(file))
ali@352
     7
assert(io.output(file))
ali@352
     8
file:write("Hello world\n")
ali@352
     9
file:close()
ali@352
    10
assert(io.input())
ali@352
    11
assert(io.output())
ali@352
    12
for line in assert(io.lines("/file1")) do
ali@352
    13
	assert(line == "Hello world")
ali@352
    14
end
ali@352
    15
file, err = io.popen("/testfile", "r")
ali@352
    16
if file == nil then
ali@352
    17
	assert(string.find(err, " not supported") == 1)
ali@352
    18
else
ali@352
    19
	assert(file:read() == "Abracadabra!")
ali@352
    20
	file:close();
ali@352
    21
end
ali@352
    22
assert(os.rename("/file1","/file2"))
ali@352
    23
assert(os.remove("/file2"))
ali@352
    24
assert(posix.mkdir("/testdir"))
ali@352
    25
assert(posix.stat("/testdir"))
ali@352
    26
assert(posix.chdir("/testdir"))
ali@352
    27
assert(posix.getcwd() == "/testdir")
ali@352
    28
assert(posix.mkdir("dir1"))
ali@352
    29
assert(posix.link("/testdir/dir1", "/testdir/link", true))
ali@352
    30
assert(posix.readlink("/testdir/link") == "/testdir/dir1")
ali@352
    31
assert(posix.unlink("/testdir/link"))
ali@352
    32
assert(posix.link("/testfile", "/testdir/magic", false))
ali@352
    33
assert(posix.chmod("/testfile","a+x"))
ali@352
    34
assert(posix.access("/testfile","x"))
ali@352
    35
pid = posix.fork()
ali@352
    36
if pid == 0 then
ali@352
    37
	assert(posix.exec("/testfile"))
ali@352
    38
else
ali@352
    39
	posix.wait(pid)
ali@352
    40
end
ali@352
    41
assert(posix.chdir("/"))
ali@352
    42
posix.setenv("PATH","/bin:/usr/bin:/testdir",true)
ali@352
    43
pid = posix.fork()
ali@352
    44
if pid == 0 then
ali@352
    45
	assert(posix.execp("magic"))
ali@352
    46
else
ali@352
    47
	posix.wait(pid)
ali@352
    48
end
ali@352
    49
assert(posix.utime("/testfile"))
ali@352
    50
assert(posix.pathconf("/testdir/magic"))
ali@352
    51
assert(posix.mkfifo("/testdir/fifo"))
ali@352
    52
assert(posix.dir())
ali@352
    53
assert(posix.dir("/testdir"))
ali@352
    54
assert(posix.files())
ali@352
    55
assert(posix.files("/testdir"))
ali@352
    56
for _,f in pairs(posix.glob("/testdir/*")) do
ali@352
    57
	assert(string.find(f, "/testdir/") == 1)
ali@352
    58
end
ali@352
    59
assert(posix.rmdir("/testdir/dir1"))
ali@352
    60
assert(posix.chown("/testfile",-1,-1))