diff options
author | Christopher Haster <chaster@utexas.edu> | 2019-07-26 19:11:34 +0300 |
---|---|---|
committer | Christopher Haster <chaster@utexas.edu> | 2019-07-26 19:11:34 +0300 |
commit | 72e3bb44482e417d8a0408ecd16cb7ef96a6c2fc (patch) | |
tree | 14f9f2d027fe1c7355a74a4fea7528bf366cbdf1 | |
parent | 1aaf1cb6c06eb9cef9cd232ee41123d69e9cb79b (diff) |
Refactored a handful of things in tests
- Now test errors have correct line reporting! #line directives
are passed to the compiler that reference the relevant line in
the test case shell script.
--- Multi-block directory ---
./tests/test_dirs.sh:109: assert failed with 0, expected 1
lfs_unmount(&lfs) => 1
- Cleaned up the number of implicit global variables provided to
tests. A lot of these were infrequently used and made it difficult
to remember what was provided. This isn't an MCU, so there's very
little cost to stack allocations when needed.
- Minimized the results.py script (previously stats.py) output to
match minimization of test output.
-rw-r--r-- | emubd/lfs_emubd.c | 6 | ||||
-rwxr-xr-x | scripts/results.py | 28 | ||||
-rwxr-xr-x | scripts/stats.py | 30 | ||||
-rw-r--r-- | scripts/template.fmt | 27 | ||||
-rwxr-xr-x | scripts/test.py | 52 | ||||
-rwxr-xr-x | tests/test_alloc.sh | 219 | ||||
-rwxr-xr-x | tests/test_attrs.sh | 88 | ||||
-rwxr-xr-x | tests/test_corrupt.sh | 22 | ||||
-rwxr-xr-x | tests/test_dirs.sh | 289 | ||||
-rwxr-xr-x | tests/test_entries.sh | 96 | ||||
-rwxr-xr-x | tests/test_files.sh | 72 | ||||
-rwxr-xr-x | tests/test_format.sh | 5 | ||||
-rwxr-xr-x | tests/test_interspersed.sh | 150 | ||||
-rwxr-xr-x | tests/test_move.sh | 257 | ||||
-rwxr-xr-x | tests/test_orphan.sh | 5 | ||||
-rwxr-xr-x | tests/test_paths.sh | 57 | ||||
-rwxr-xr-x | tests/test_seek.sh | 374 | ||||
-rwxr-xr-x | tests/test_truncate.sh | 166 |
18 files changed, 1009 insertions, 934 deletions
diff --git a/emubd/lfs_emubd.c b/emubd/lfs_emubd.c index 374c51c..943ddfb 100644 --- a/emubd/lfs_emubd.c +++ b/emubd/lfs_emubd.c @@ -197,7 +197,7 @@ int lfs_emubd_read(const struct lfs_config *cfg, lfs_block_t block, } } - emu->stats.read_count += 1; + emu->stats.read_count += size; LFS_TRACE("lfs_emubd_read -> %d", 0); return 0; } @@ -270,7 +270,7 @@ int lfs_emubd_prog(const struct lfs_config *cfg, lfs_block_t block, emu->history.blocks[0] = block; } - emu->stats.prog_count += 1; + emu->stats.prog_count += size; LFS_TRACE("lfs_emubd_prog -> %d", 0); return 0; } @@ -317,7 +317,7 @@ int lfs_emubd_erase(const struct lfs_config *cfg, lfs_block_t block) { } } - emu->stats.erase_count += 1; + emu->stats.erase_count += cfg->block_size; LFS_TRACE("lfs_emubd_erase -> %d", 0); return 0; } diff --git a/scripts/results.py b/scripts/results.py new file mode 100755 index 0000000..0e5cfc6 --- /dev/null +++ b/scripts/results.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python2 + +import struct +import sys +import time +import os +import re + +def main(): + with open('blocks/.config') as file: + read_size, prog_size, block_size, block_count = ( + struct.unpack('<LLLL', file.read())) + + real_size = sum( + os.path.getsize(os.path.join('blocks', f)) + for f in os.listdir('blocks') if re.match('\d+', f)) + + with open('blocks/.stats') as file: + read_count, prog_count, erase_count = ( + struct.unpack('<QQQ', file.read())) + + runtime = time.time() - os.stat('blocks').st_ctime + + print 'results: %dB %dB %dB %.3fs' % ( + read_count, prog_count, erase_count, runtime) + +if __name__ == "__main__": + main(*sys.argv[1:]) diff --git a/scripts/stats.py b/scripts/stats.py deleted file mode 100755 index c2d0fab..0000000 --- a/scripts/stats.py +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env python2 - -import struct -import sys -import time -import os -import re - -def main(): - with open('blocks/.config') as file: - s = struct.unpack('<LLLL', file.read()) - print 'read_size: %d' % s[0] - print 'prog_size: %d' % s[1] - print 'block_size: %d' % s[2] - print 'block_size: %d' % s[3] - - print 'real_size: %d' % sum( - os.path.getsize(os.path.join('blocks', f)) - for f in os.listdir('blocks') if re.match('\d+', f)) - - with open('blocks/.stats') as file: - s = struct.unpack('<QQQ', file.read()) - print 'read_count: %d' % s[0] - print 'prog_count: %d' % s[1] - print 'erase_count: %d' % s[2] - - print 'runtime: %.3f' % (time.time() - os.stat('blocks').st_ctime) - -if __name__ == "__main__": - main(*sys.argv[1:]) diff --git a/scripts/template.fmt b/scripts/template.fmt index b5ad8f8..b0c74ff 100644 --- a/scripts/template.fmt +++ b/scripts/template.fmt @@ -10,14 +10,18 @@ static void test_assert(const char *file, unsigned line, const char *s, uintmax_t v, uintmax_t e) {{ if (v != e) {{ - fprintf(stderr, "\033[31m%s:%u: assert %s failed with %jd, " - "expected %jd\033[0m\n", file, line, s, v, e); + fprintf(stderr, "\033[97m%s:%u: \033[91m" + "assert failed with %jd, expected %jd\033[0m\n" + " %s\n\n", file, line, v, e, s); exit(-2); }} }} -#define test_assert(s, v, e) test_assert(__FILE__, __LINE__, s, v, e) +#define test_assert(v, e) \ + test_assert(__FILE__, __LINE__, #v " => " #e, v, e) +// implicit variable for asserts +uintmax_t test; // utility functions for traversals static int __attribute__((used)) test_count(void *p, lfs_block_t b) {{ @@ -27,23 +31,17 @@ static int __attribute__((used)) test_count(void *p, lfs_block_t b) {{ return 0; }} - // lfs declarations lfs_t lfs; lfs_emubd_t bd; -lfs_file_t file[4]; -lfs_dir_t dir[4]; +// other declarations for convenience +lfs_file_t file; +lfs_dir_t dir; struct lfs_info info; - uint8_t buffer[1024]; -uint8_t wbuffer[1024]; -uint8_t rbuffer[1024]; -lfs_size_t size; -lfs_size_t wsize; -lfs_size_t rsize; - -uintmax_t test; +char path[1024]; +// test configuration options #ifndef LFS_READ_SIZE #define LFS_READ_SIZE 16 #endif @@ -94,6 +92,5 @@ int main(void) {{ lfs_emubd_create(&cfg, "blocks"); {tests} - lfs_emubd_destroy(&cfg); }} diff --git a/scripts/test.py b/scripts/test.py index 9d243ce..3135c65 100755 --- a/scripts/test.py +++ b/scripts/test.py @@ -5,24 +5,36 @@ import sys import subprocess import os + def generate(test): with open("scripts/template.fmt") as file: template = file.read() + haslines = 'TEST_LINE' in os.environ and 'TEST_FILE' in os.environ + lines = [] - for line in re.split('(?<=(?:.;| [{}]))\n', test.read()): - match = re.match('(?: *\n)*( *)(.*)=>(.*);', line, re.DOTALL | re.MULTILINE) + for offset, line in enumerate( + re.split('(?<=(?:.;| [{}]))\n', test.read())): + match = re.match('((?: *\n)*)( *)(.*)=>(.*);', + line, re.DOTALL | re.MULTILINE) if match: - tab, test, expect = match.groups() - lines.append(tab+'test = {test};'.format(test=test.strip())) - lines.append(tab+'test_assert("{name}", test, {expect});'.format( - name = re.match('\w*', test.strip()).group(), - expect = expect.strip())) + preface, tab, test, expect = match.groups() + lines.extend(['']*preface.count('\n')) + lines.append(tab+'test_assert({test}, {expect});'.format( + test=test.strip(), expect=expect.strip())) else: lines.append(line) # Create test file with open('test.c', 'w') as file: + if 'TEST_LINE' in os.environ and 'TEST_FILE' in os.environ: + lines.insert(0, '#line %d "%s"' % ( + int(os.environ['TEST_LINE']) + 1, + os.environ['TEST_FILE'])) + lines.append('#line %d "test.c"' % ( + template[:template.find('{tests}')].count('\n') + + len(lines) + 2)) + file.write(template.format(tests='\n'.join(lines))) # Remove build artifacts to force rebuild @@ -44,18 +56,26 @@ def execute(): subprocess.check_call(["./lfs"]) def main(test=None): - if test and not test.startswith('-'): - with open(test) as file: - generate(file) - else: - generate(sys.stdin) + try: + if test and not test.startswith('-'): + with open(test) as file: + generate(file) + else: + generate(sys.stdin) + + compile() - compile() + if test == '-s': + sys.exit(1) - if test == '-s': - sys.exit(1) + execute() - execute() + except subprocess.CalledProcessError: + # Python stack trace is counterproductive, just exit + sys.exit(2) + except KeyboardInterrupt: + # Python stack trace is counterproductive, just exit + sys.exit(3) if __name__ == "__main__": main(*sys.argv[1:]) diff --git a/tests/test_alloc.sh b/tests/test_alloc.sh index ce60652..d9f233b 100755 --- a/tests/test_alloc.sh +++ b/tests/test_alloc.sh @@ -1,5 +1,7 @@ #!/bin/bash -set -eu +set -euE +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG echo "=== Allocator tests ===" rm -rf blocks @@ -31,20 +33,21 @@ TEST lfs_alloc_singleproc() { scripts/test.py << TEST const char *names[] = {"bacon", "eggs", "pancakes"}; + lfs_file_t files[sizeof(names)/sizeof(names[0])]; lfs_mount(&lfs, &cfg) => 0; for (unsigned n = 0; n < sizeof(names)/sizeof(names[0]); n++) { - sprintf((char*)buffer, "$1/%s", names[n]); - lfs_file_open(&lfs, &file[n], (char*)buffer, + sprintf(path, "$1/%s", names[n]); + lfs_file_open(&lfs, &files[n], path, LFS_O_WRONLY | LFS_O_CREAT | LFS_O_APPEND) => 0; } for (unsigned n = 0; n < sizeof(names)/sizeof(names[0]); n++) { - size = strlen(names[n]); + lfs_size_t size = strlen(names[n]); for (int i = 0; i < $SIZE; i++) { - lfs_file_write(&lfs, &file[n], names[n], size) => size; + lfs_file_write(&lfs, &files[n], names[n], size) => size; } } for (unsigned n = 0; n < sizeof(names)/sizeof(names[0]); n++) { - lfs_file_close(&lfs, &file[n]) => 0; + lfs_file_close(&lfs, &files[n]) => 0; } lfs_unmount(&lfs) => 0; TEST @@ -55,14 +58,14 @@ for name in bacon eggs pancakes do scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "$1/$name", + lfs_file_open(&lfs, &file, "$1/$name", LFS_O_WRONLY | LFS_O_CREAT | LFS_O_APPEND) => 0; - size = strlen("$name"); + lfs_size_t size = strlen("$name"); memcpy(buffer, "$name", size); for (int i = 0; i < $SIZE; i++) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST done @@ -73,13 +76,13 @@ for name in bacon eggs pancakes do scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "$1/$name", LFS_O_RDONLY) => 0; - size = strlen("$name"); + lfs_file_open(&lfs, &file, "$1/$name", LFS_O_RDONLY) => 0; + lfs_size_t size = strlen("$name"); for (int i = 0; i < $SIZE; i++) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "$name", size) => 0; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST done @@ -117,17 +120,17 @@ lfs_remove singleprocreuse echo "--- Exhaustion test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); - size = strlen("exhaustion"); + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + lfs_size_t size = strlen("exhaustion"); memcpy(buffer, "exhaustion", size); - lfs_file_write(&lfs, &file[0], buffer, size) => size; - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, buffer, size) => size; + lfs_file_sync(&lfs, &file) => 0; size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); lfs_ssize_t res; while (true) { - res = lfs_file_write(&lfs, &file[0], buffer, size); + res = lfs_file_write(&lfs, &file, buffer, size); if (res < 0) { break; } @@ -136,17 +139,17 @@ scripts/test.py << TEST } res => LFS_ERR_NOSPC; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_RDONLY); - size = strlen("exhaustion"); - lfs_file_size(&lfs, &file[0]) => size; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_RDONLY); + lfs_size_t size = strlen("exhaustion"); + lfs_file_size(&lfs, &file) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "exhaustion", size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST @@ -155,26 +158,26 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; lfs_remove(&lfs, "exhaustion") => 0; - lfs_file_open(&lfs, &file[0], "padding", LFS_O_WRONLY | LFS_O_CREAT); - size = strlen("buffering"); + lfs_file_open(&lfs, &file, "padding", LFS_O_WRONLY | LFS_O_CREAT); + lfs_size_t size = strlen("buffering"); memcpy(buffer, "buffering", size); for (int i = 0; i < $SIZE; i++) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_remove(&lfs, "padding") => 0; - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); size = strlen("exhaustion"); memcpy(buffer, "exhaustion", size); - lfs_file_write(&lfs, &file[0], buffer, size) => size; - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, buffer, size) => size; + lfs_file_sync(&lfs, &file) => 0; size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); lfs_ssize_t res; while (true) { - res = lfs_file_write(&lfs, &file[0], buffer, size); + res = lfs_file_write(&lfs, &file, buffer, size); if (res < 0) { break; } @@ -183,17 +186,17 @@ scripts/test.py << TEST } res => LFS_ERR_NOSPC; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_RDONLY); - size = strlen("exhaustion"); - lfs_file_size(&lfs, &file[0]) => size; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_RDONLY); + lfs_size_t size = strlen("exhaustion"); + lfs_file_size(&lfs, &file) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "exhaustion", size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_remove(&lfs, "exhaustion") => 0; lfs_unmount(&lfs) => 0; TEST @@ -204,13 +207,13 @@ scripts/test.py << TEST // find out max file size lfs_mkdir(&lfs, "exhaustiondir") => 0; - size = strlen("blahblahblahblah"); + lfs_size_t size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); int count = 0; int err; while (true) { - err = lfs_file_write(&lfs, &file[0], buffer, size); + err = lfs_file_write(&lfs, &file, buffer, size); if (err < 0) { break; } @@ -218,28 +221,28 @@ scripts/test.py << TEST count += 1; } err => LFS_ERR_NOSPC; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_remove(&lfs, "exhaustion") => 0; lfs_remove(&lfs, "exhaustiondir") => 0; // see if dir fits with max file size - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); for (int i = 0; i < count; i++) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_mkdir(&lfs, "exhaustiondir") => 0; lfs_remove(&lfs, "exhaustiondir") => 0; lfs_remove(&lfs, "exhaustion") => 0; // see if dir fits with > max file size - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); for (int i = 0; i < count+1; i++) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_mkdir(&lfs, "exhaustiondir") => LFS_ERR_NOSPC; @@ -254,16 +257,16 @@ scripts/test.py << TEST // find out max file size lfs_mkdir(&lfs, "exhaustiondir") => 0; for (int i = 0; i < 10; i++) { - sprintf((char*)buffer, "dirwithanexhaustivelylongnameforpadding%d", i); - lfs_mkdir(&lfs, (char*)buffer) => 0; + sprintf(path, "dirwithanexhaustivelylongnameforpadding%d", i); + lfs_mkdir(&lfs, path) => 0; } - size = strlen("blahblahblahblah"); + lfs_size_t size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); int count = 0; int err; while (true) { - err = lfs_file_write(&lfs, &file[0], buffer, size); + err = lfs_file_write(&lfs, &file, buffer, size); if (err < 0) { break; } @@ -271,25 +274,25 @@ scripts/test.py << TEST count += 1; } err => LFS_ERR_NOSPC; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_remove(&lfs, "exhaustion") => 0; lfs_remove(&lfs, "exhaustiondir") => 0; for (int i = 0; i < 10; i++) { - sprintf((char*)buffer, "dirwithanexhaustivelylongnameforpadding%d", i); - lfs_remove(&lfs, (char*)buffer) => 0; + sprintf(path, "dirwithanexhaustivelylongnameforpadding%d", i); + lfs_remove(&lfs, path) => 0; } // see that chained dir fails - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); for (int i = 0; i < count+1; i++) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_sync(&lfs, &file) => 0; for (int i = 0; i < 10; i++) { - sprintf((char*)buffer, "dirwithanexhaustivelylongnameforpadding%d", i); - lfs_mkdir(&lfs, (char*)buffer) => 0; + sprintf(path, "dirwithanexhaustivelylongnameforpadding%d", i); + lfs_mkdir(&lfs, path) => 0; } lfs_mkdir(&lfs, "exhaustiondir") => LFS_ERR_NOSPC; @@ -301,22 +304,21 @@ scripts/test.py << TEST break; } - lfs_ssize_t filesize = lfs_file_size(&lfs, &file[0]); + lfs_ssize_t filesize = lfs_file_size(&lfs, &file); filesize > 0 => true; - lfs_file_truncate(&lfs, &file[0], filesize - size) => 0; - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_truncate(&lfs, &file, filesize - size) => 0; + lfs_file_sync(&lfs, &file) => 0; } err => 0; lfs_mkdir(&lfs, "exhaustiondir2") => LFS_ERR_NOSPC; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Split dir test ---" -rm -rf blocks scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; TEST @@ -324,22 +326,22 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; // create one block hole for half a directory - lfs_file_open(&lfs, &file[0], "bump", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_file_open(&lfs, &file, "bump", LFS_O_WRONLY | LFS_O_CREAT) => 0; for (lfs_size_t i = 0; i < cfg.block_size; i += 2) { memcpy(&buffer[i], "hi", 2); } - lfs_file_write(&lfs, &file[0], buffer, cfg.block_size) => cfg.block_size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, buffer, cfg.block_size) => cfg.block_size; + lfs_file_close(&lfs, &file) => 0; - lfs_file_open(&lfs, &file[0], "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); - size = strlen("blahblahblahblah"); + lfs_file_open(&lfs, &file, "exhaustion", LFS_O_WRONLY | LFS_O_CREAT); + lfs_size_t size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); for (lfs_size_t i = 0; i < (cfg.block_count-4)*(cfg.block_size-8); i += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; // remount to force reset of lookahead lfs_unmount(&lfs) => 0; @@ -349,137 +351,134 @@ scripts/test.py << TEST lfs_remove(&lfs, "bump") => 0; lfs_mkdir(&lfs, "splitdir") => 0; - lfs_file_open(&lfs, &file[0], "splitdir/bump", + lfs_file_open(&lfs, &file, "splitdir/bump", LFS_O_WRONLY | LFS_O_CREAT) => 0; for (lfs_size_t i = 0; i < cfg.block_size; i += 2) { memcpy(&buffer[i], "hi", 2); } - lfs_file_write(&lfs, &file[0], buffer, 2*cfg.block_size) => LFS_ERR_NOSPC; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, buffer, 2*cfg.block_size) => LFS_ERR_NOSPC; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Outdated lookahead test ---" -rm -rf blocks scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; lfs_mount(&lfs, &cfg) => 0; // fill completely with two files - lfs_file_open(&lfs, &file[0], "exhaustion1", + lfs_file_open(&lfs, &file, "exhaustion1", LFS_O_WRONLY | LFS_O_CREAT) => 0; - size = strlen("blahblahblahblah"); + lfs_size_t size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); for (lfs_size_t i = 0; i < ((cfg.block_count-2)/2)*(cfg.block_size-8); i += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; - lfs_file_open(&lfs, &file[0], "exhaustion2", + lfs_file_open(&lfs, &file, "exhaustion2", LFS_O_WRONLY | LFS_O_CREAT) => 0; size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); for (lfs_size_t i = 0; i < ((cfg.block_count-2+1)/2)*(cfg.block_size-8); i += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; // remount to force reset of lookahead lfs_unmount(&lfs) => 0; lfs_mount(&lfs, &cfg) => 0; // rewrite one file - lfs_file_open(&lfs, &file[0], "exhaustion1", + lfs_file_open(&lfs, &file, "exhaustion1", LFS_O_WRONLY | LFS_O_TRUNC) => 0; - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_sync(&lfs, &file) => 0; size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); for (lfs_size_t i = 0; i < ((cfg.block_count-2)/2)*(cfg.block_size-8); i += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; // rewrite second file, this requires lookahead does not // use old population - lfs_file_open(&lfs, &file[0], "exhaustion2", + lfs_file_open(&lfs, &file, "exhaustion2", LFS_O_WRONLY | LFS_O_TRUNC) => 0; - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_sync(&lfs, &file) => 0; size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); for (lfs_size_t i = 0; i < ((cfg.block_count-2+1)/2)*(cfg.block_size-8); i += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; TEST echo "--- Outdated lookahead and split dir test ---" -rm -rf blocks scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; lfs_mount(&lfs, &cfg) => 0; // fill completely with two files - lfs_file_open(&lfs, &file[0], "exhaustion1", + lfs_file_open(&lfs, &file, "exhaustion1", LFS_O_WRONLY | LFS_O_CREAT) => 0; - size = strlen("blahblahblahblah"); + lfs_size_t size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); for (lfs_size_t i = 0; i < ((cfg.block_count-2)/2)*(cfg.block_size-8); i += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; - lfs_file_open(&lfs, &file[0], "exhaustion2", + lfs_file_open(&lfs, &file, "exhaustion2", LFS_O_WRONLY | LFS_O_CREAT) => 0; size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); for (lfs_size_t i = 0; i < ((cfg.block_count-2+1)/2)*(cfg.block_size-8); i += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; // remount to force reset of lookahead lfs_unmount(&lfs) => 0; lfs_mount(&lfs, &cfg) => 0; // rewrite one file with a hole of one block - lfs_file_open(&lfs, &file[0], "exhaustion1", + lfs_file_open(&lfs, &file, "exhaustion1", LFS_O_WRONLY | LFS_O_TRUNC) => 0; - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_sync(&lfs, &file) => 0; size = strlen("blahblahblahblah"); memcpy(buffer, "blahblahblahblah", size); for (lfs_size_t i = 0; i < ((cfg.block_count-2)/2 - 1)*(cfg.block_size-8); i += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; // try to allocate a directory, should fail! lfs_mkdir(&lfs, "split") => LFS_ERR_NOSPC; // file should not fail - lfs_file_open(&lfs, &file[0], "notasplit", + lfs_file_open(&lfs, &file, "notasplit", LFS_O_WRONLY | LFS_O_CREAT) => 0; - lfs_file_write(&lfs, &file[0], "hi", 2) => 2; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, "hi", 2) => 2; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_attrs.sh b/tests/test_attrs.sh index ed8c0d3..612cae1 100755 --- a/tests/test_attrs.sh +++ b/tests/test_attrs.sh @@ -1,5 +1,7 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG echo "=== Attr tests ===" rm -rf blocks @@ -8,17 +10,18 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; lfs_mkdir(&lfs, "hello") => 0; - lfs_file_open(&lfs, &file[0], "hello/hello", + lfs_file_open(&lfs, &file, "hello/hello", LFS_O_WRONLY | LFS_O_CREAT) => 0; - lfs_file_write(&lfs, &file[0], "hello", strlen("hello")) + lfs_file_write(&lfs, &file, "hello", strlen("hello")) => strlen("hello"); - lfs_file_close(&lfs, &file[0]); + lfs_file_close(&lfs, &file); lfs_unmount(&lfs) => 0; TEST echo "--- Set/get attribute ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; + memset(buffer, 0, sizeof(buffer)); lfs_setattr(&lfs, "hello", 'A', "aaaa", 4) => 0; lfs_setattr(&lfs, "hello", 'B', "bbbbbb", 6) => 0; lfs_setattr(&lfs, "hello", 'C', "ccccc", 5) => 0; @@ -71,6 +74,7 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; + memset(buffer, 0, sizeof(buffer)); lfs_getattr(&lfs, "hello", 'A', buffer, 4) => 4; lfs_getattr(&lfs, "hello", 'B', buffer+4, 9) => 9; lfs_getattr(&lfs, "hello", 'C', buffer+13, 5) => 5; @@ -78,16 +82,17 @@ scripts/test.py << TEST memcmp(buffer+4, "fffffffff", 9) => 0; memcmp(buffer+13, "ccccc", 5) => 0; - lfs_file_open(&lfs, &file[0], "hello/hello", LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], buffer, sizeof(buffer)) => strlen("hello"); + lfs_file_open(&lfs, &file, "hello/hello", LFS_O_RDONLY) => 0; + lfs_file_read(&lfs, &file, buffer, sizeof(buffer)) => strlen("hello"); memcmp(buffer, "hello", strlen("hello")) => 0; - lfs_file_close(&lfs, &file[0]); + lfs_file_close(&lfs, &file); lfs_unmount(&lfs) => 0; TEST echo "--- Set/get root attribute ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; + memset(buffer, 0, sizeof(buffer)); lfs_setattr(&lfs, "/", 'A', "aaaa", 4) => 0; lfs_setattr(&lfs, "/", 'B', "bbbbbb", 6) => 0; lfs_setattr(&lfs, "/", 'C', "ccccc", 5) => 0; @@ -139,6 +144,7 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; + memset(buffer, 0, sizeof(buffer)); lfs_getattr(&lfs, "/", 'A', buffer, 4) => 4; lfs_getattr(&lfs, "/", 'B', buffer+4, 9) => 9; lfs_getattr(&lfs, "/", 'C', buffer+13, 5) => 5; @@ -146,16 +152,17 @@ scripts/test.py << TEST memcmp(buffer+4, "fffffffff", 9) => 0; memcmp(buffer+13, "ccccc", 5) => 0; - lfs_file_open(&lfs, &file[0], "hello/hello", LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], buffer, sizeof(buffer)) => strlen("hello"); + lfs_file_open(&lfs, &file, "hello/hello", LFS_O_RDONLY) => 0; + lfs_file_read(&lfs, &file, buffer, sizeof(buffer)) => strlen("hello"); memcmp(buffer, "hello", strlen("hello")) => 0; - lfs_file_close(&lfs, &file[0]); + lfs_file_close(&lfs, &file); lfs_unmount(&lfs) => 0; TEST echo "--- Set/get file attribute ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; + memset(buffer, 0, sizeof(buffer)); struct lfs_attr attrs1[] = { {'A', buffer, 4}, {'B', buffer+4, 6}, @@ -163,55 +170,55 @@ scripts/test.py << TEST }; struct lfs_file_config cfg1 = {.attrs=attrs1, .attr_count=3}; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_WRONLY, &cfg1) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_WRONLY, &cfg1) => 0; memcpy(buffer, "aaaa", 4); memcpy(buffer+4, "bbbbbb", 6); memcpy(buffer+10, "ccccc", 5); - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; memset(buffer, 0, 15); - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_RDONLY, &cfg1) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_RDONLY, &cfg1) => 0; + lfs_file_close(&lfs, &file) => 0; memcmp(buffer, "aaaa", 4) => 0; memcmp(buffer+4, "bbbbbb", 6) => 0; memcmp(buffer+10, "ccccc", 5) => 0; attrs1[1].size = 0; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_WRONLY, &cfg1) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_WRONLY, &cfg1) => 0; + lfs_file_close(&lfs, &file) => 0; memset(buffer, 0, 15); attrs1[1].size = 6; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_RDONLY, &cfg1) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_RDONLY, &cfg1) => 0; + lfs_file_close(&lfs, &file) => 0; memcmp(buffer, "aaaa", 4) => 0; memcmp(buffer+4, "\0\0\0\0\0\0", 6) => 0; memcmp(buffer+10, "ccccc", 5) => 0; attrs1[1].size = 6; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_WRONLY, &cfg1) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_WRONLY, &cfg1) => 0; memcpy(buffer+4, "dddddd", 6); - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; memset(buffer, 0, 15); attrs1[1].size = 6; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_RDONLY, &cfg1) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_RDONLY, &cfg1) => 0; + lfs_file_close(&lfs, &file) => 0; memcmp(buffer, "aaaa", 4) => 0; memcmp(buffer+4, "dddddd", 6) => 0; memcmp(buffer+10, "ccccc", 5) => 0; attrs1[1].size = 3; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_WRONLY, &cfg1) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_WRONLY, &cfg1) => 0; memcpy(buffer+4, "eee", 3); - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; memset(buffer, 0, 15); attrs1[1].size = 6; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_RDONLY, &cfg1) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_RDONLY, &cfg1) => 0; + lfs_file_close(&lfs, &file) => 0; memcmp(buffer, "aaaa", 4) => 0; memcmp(buffer+4, "eee\0\0\0", 6) => 0; memcmp(buffer+10, "ccccc", 5) => 0; attrs1[0].size = LFS_ATTR_MAX+1; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_WRONLY, &cfg1) + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_WRONLY, &cfg1) => LFS_ERR_NOSPC; struct lfs_attr attrs2[] = { @@ -220,17 +227,18 @@ scripts/test.py << TEST {'C', buffer+13, 5}, }; struct lfs_file_config cfg2 = {.attrs=attrs2, .attr_count=3}; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_RDWR, &cfg2) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_RDWR, &cfg2) => 0; memcpy(buffer+4, "fffffffff", 9); - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; attrs1[0].size = 4; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_RDONLY, &cfg1) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_RDONLY, &cfg1) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; + memset(buffer, 0, sizeof(buffer)); struct lfs_attr attrs2[] = { {'A', buffer, 4}, {'B', buffer+4, 9}, @@ -238,22 +246,23 @@ scripts/test.py << TEST }; struct lfs_file_config cfg2 = {.attrs=attrs2, .attr_count=3}; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_RDONLY, &cfg2) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_RDONLY, &cfg2) => 0; + lfs_file_close(&lfs, &file) => 0; memcmp(buffer, "aaaa", 4) => 0; memcmp(buffer+4, "fffffffff", 9) => 0; memcmp(buffer+13, "ccccc", 5) => 0; - lfs_file_open(&lfs, &file[0], "hello/hello", LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], buffer, sizeof(buffer)) => strlen("hello"); + lfs_file_open(&lfs, &file, "hello/hello", LFS_O_RDONLY) => 0; + lfs_file_read(&lfs, &file, buffer, sizeof(buffer)) => strlen("hello"); memcmp(buffer, "hello", strlen("hello")) => 0; - lfs_file_close(&lfs, &file[0]); + lfs_file_close(&lfs, &file); lfs_unmount(&lfs) => 0; TEST echo "--- Deferred file attributes ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; + memset(buffer, 0, sizeof(buffer)); struct lfs_attr attrs1[] = { {'B', "gggg", 4}, {'C', "", 0}, @@ -261,7 +270,7 @@ scripts/test.py << TEST }; struct lfs_file_config cfg1 = {.attrs=attrs1, .attr_count=3}; - lfs_file_opencfg(&lfs, &file[0], "hello/hello", LFS_O_WRONLY, &cfg1) => 0; + lfs_file_opencfg(&lfs, &file, "hello/hello", LFS_O_WRONLY, &cfg1) => 0; lfs_getattr(&lfs, "hello/hello", 'B', buffer, 9) => 9; lfs_getattr(&lfs, "hello/hello", 'C', buffer+9, 9) => 5; @@ -270,7 +279,7 @@ scripts/test.py << TEST memcmp(buffer+9, "ccccc\0\0\0\0", 9) => 0; memcmp(buffer+18, "\0\0\0\0\0\0\0\0\0", 9) => 0; - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_sync(&lfs, &file) => 0; lfs_getattr(&lfs, "hello/hello", 'B', buffer, 9) => 4; lfs_getattr(&lfs, "hello/hello", 'C', buffer+9, 9) => 0; lfs_getattr(&lfs, "hello/hello", 'D', buffer+18, 9) => 4; @@ -278,9 +287,8 @@ scripts/test.py << TEST memcmp(buffer+9, "\0\0\0\0\0\0\0\0\0", 9) => 0; memcmp(buffer+18, "hhhh\0\0\0\0\0", 9) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_corrupt.sh b/tests/test_corrupt.sh index fae3291..3001522 100755 --- a/tests/test_corrupt.sh +++ b/tests/test_corrupt.sh @@ -1,5 +1,7 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG echo "=== Corrupt tests ===" @@ -23,15 +25,15 @@ scripts/test.py ${1:-} << TEST buffer[j+$NAMEMULT+1] = '0'+i; } buffer[2*$NAMEMULT+1] = '\0'; - lfs_file_open(&lfs, &file[0], (char*)buffer, + lfs_file_open(&lfs, &file, (char*)buffer, LFS_O_WRONLY | LFS_O_CREAT) => 0; - size = $NAMEMULT; + lfs_size_t size = $NAMEMULT; for (int j = 0; j < i*$FILEMULT; j++) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; } lfs_unmount(&lfs) => 0; TEST @@ -53,15 +55,16 @@ scripts/test.py ${1:-} << TEST buffer[j+$NAMEMULT+1] = '0'+i; } buffer[2*$NAMEMULT+1] = '\0'; - lfs_file_open(&lfs, &file[0], (char*)buffer, LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &file, (char*)buffer, LFS_O_RDONLY) => 0; - size = $NAMEMULT; + lfs_size_t size = $NAMEMULT; for (int j = 0; j < i*$FILEMULT; j++) { - lfs_file_read(&lfs, &file[0], rbuffer, size) => size; + uint8_t rbuffer[1024]; + lfs_file_read(&lfs, &file, rbuffer, size) => size; memcmp(buffer, rbuffer, size) => 0; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; } lfs_unmount(&lfs) => 0; TEST @@ -114,5 +117,4 @@ done lfs_mktree lfs_chktree -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_dirs.sh b/tests/test_dirs.sh index f73103d..0125bfd 100755 --- a/tests/test_dirs.sh +++ b/tests/test_dirs.sh @@ -1,9 +1,12 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG + +echo "=== Directory tests ===" LARGESIZE=128 -echo "=== Directory tests ===" rm -rf blocks scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; @@ -12,8 +15,8 @@ TEST echo "--- Root directory ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST @@ -27,29 +30,29 @@ TEST echo "--- File creation ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "burito", LFS_O_CREAT | LFS_O_WRONLY) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_open(&lfs, &file, "burito", LFS_O_CREAT | LFS_O_WRONLY) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Directory iteration ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "burito") => 0; info.type => LFS_TYPE_REG; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "potato") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST @@ -57,10 +60,10 @@ echo "--- Directory failures ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; lfs_mkdir(&lfs, "potato") => LFS_ERR_EXIST; - lfs_dir_open(&lfs, &dir[0], "tomato") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "burito") => LFS_ERR_NOTDIR; - lfs_file_open(&lfs, &file[0], "tomato", LFS_O_RDONLY) => LFS_ERR_NOENT; - lfs_file_open(&lfs, &file[0], "potato", LFS_O_RDONLY) => LFS_ERR_ISDIR; + lfs_dir_open(&lfs, &dir, "tomato") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "burito") => LFS_ERR_NOTDIR; + lfs_file_open(&lfs, &file, "tomato", LFS_O_RDONLY) => LFS_ERR_NOENT; + lfs_file_open(&lfs, &file, "potato", LFS_O_RDONLY) => LFS_ERR_ISDIR; lfs_unmount(&lfs) => 0; TEST @@ -74,24 +77,24 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "potato") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "potato") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "baked") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "fried") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "sweet") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST @@ -100,27 +103,27 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; lfs_mkdir(&lfs, "cactus") => 0; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "cactus/test%03d", i); - lfs_mkdir(&lfs, (char*)buffer) => 0; + sprintf(path, "cactus/test%03d", i); + lfs_mkdir(&lfs, path) => 0; } lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "cactus") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "cactus") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "test%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + sprintf(path, "test%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; info.type => LFS_TYPE_DIR; } - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -132,52 +135,52 @@ scripts/test.py << TEST lfs_remove(&lfs, "potato/baked") => 0; lfs_remove(&lfs, "potato/fried") => 0; - lfs_dir_open(&lfs, &dir[0], "potato") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "potato") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_remove(&lfs, "potato") => 0; - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "burito") => 0; info.type => LFS_TYPE_REG; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "cactus") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "burito") => 0; info.type => LFS_TYPE_REG; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "cactus") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST @@ -197,24 +200,24 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "hotpotato") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "hotpotato") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "baked") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "fried") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "sweet") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST @@ -230,24 +233,24 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "warmpotato") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "warmpotato") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "baked") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "fried") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "sweet") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST @@ -262,24 +265,24 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "coldpotato") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "coldpotato") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "baked") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "fried") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "sweet") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST @@ -288,41 +291,41 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; lfs_remove(&lfs, "coldpotato") => LFS_ERR_NOTEMPTY; - lfs_dir_open(&lfs, &dir[0], "coldpotato") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "coldpotato") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; while (true) { - int err = lfs_dir_read(&lfs, &dir[0], &info); + int err = lfs_dir_read(&lfs, &dir, &info); err >= 0 => 1; if (err == 0) { break; } - strcpy((char*)buffer, "coldpotato/"); - strcat((char*)buffer, info.name); - lfs_remove(&lfs, (char*)buffer) => 0; + strcpy(path, "coldpotato/"); + strcat(path, info.name); + lfs_remove(&lfs, path) => 0; } lfs_remove(&lfs, "coldpotato") => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "burito") => 0; info.type => LFS_TYPE_REG; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "cactus") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST @@ -330,28 +333,30 @@ echo "--- Multi-block rename ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "cactus/test%03d", i); - sprintf((char*)wbuffer, "cactus/tedd%03d", i); - lfs_rename(&lfs, (char*)buffer, (char*)wbuffer) => 0; + char oldpath[1024]; + char newpath[1024]; + sprintf(oldpath, "cactus/test%03d", i); + sprintf(newpath, "cactus/tedd%03d", i); + lfs_rename(&lfs, oldpath, newpath) => 0; } lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "cactus") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "cactus") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "tedd%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + sprintf(path, "tedd%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; info.type => LFS_TYPE_DIR; } - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -361,8 +366,8 @@ scripts/test.py << TEST lfs_remove(&lfs, "cactus") => LFS_ERR_NOTEMPTY; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "cactus/tedd%03d", i); - lfs_remove(&lfs, (char*)buffer) => 0; + sprintf(path, "cactus/tedd%03d", i); + lfs_remove(&lfs, path) => 0; } lfs_remove(&lfs, "cactus") => 0; @@ -370,18 +375,18 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "burito") => 0; info.type => LFS_TYPE_REG; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST @@ -390,33 +395,32 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; lfs_mkdir(&lfs, "prickly-pear") => 0; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "prickly-pear/test%03d", i); - lfs_file_open(&lfs, &file[0], (char*)buffer, - LFS_O_WRONLY | LFS_O_CREAT) => 0; - size = 6; - memcpy(wbuffer, "Hello", size); - lfs_file_write(&lfs, &file[0], wbuffer, size) => size; - lfs_file_close(&lfs, &file[0]) => 0; + sprintf(path, "prickly-pear/test%03d", i); + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_size_t size = 6; + memcpy(buffer, "Hello", size); + lfs_file_write(&lfs, &file, buffer, size) => size; + lfs_file_close(&lfs, &file) => 0; } lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "prickly-pear") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "prickly-pear") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "test%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + sprintf(path, "test%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; info.type => LFS_TYPE_REG; info.size => 6; } - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -424,29 +428,31 @@ echo "--- Multi-block rename with files ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "prickly-pear/test%03d", i); - sprintf((char*)wbuffer, "prickly-pear/tedd%03d", i); - lfs_rename(&lfs, (char*)buffer, (char*)wbuffer) => 0; + char oldpath[1024]; + char newpath[1024]; + sprintf(oldpath, "prickly-pear/test%03d", i); + sprintf(newpath, "prickly-pear/tedd%03d", i); + lfs_rename(&lfs, oldpath, newpath) => 0; } lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "prickly-pear") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "prickly-pear") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "tedd%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + sprintf(path, "tedd%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; info.type => LFS_TYPE_REG; info.size => 6; } - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -456,8 +462,8 @@ scripts/test.py << TEST lfs_remove(&lfs, "prickly-pear") => LFS_ERR_NOTEMPTY; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "prickly-pear/tedd%03d", i); - lfs_remove(&lfs, (char*)buffer) => 0; + sprintf(path, "prickly-pear/tedd%03d", i); + lfs_remove(&lfs, path) => 0; } lfs_remove(&lfs, "prickly-pear") => 0; @@ -465,20 +471,19 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "burito") => 0; info.type => LFS_TYPE_REG; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_entries.sh b/tests/test_entries.sh index 15cae7a..5075faf 100755 --- a/tests/test_entries.sh +++ b/tests/test_entries.sh @@ -1,19 +1,22 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG + +echo "=== Entry tests ===" # Note: These tests are intended for 512 byte inline size at different # inline sizes they should still pass, but won't be testing anything -echo "=== Entry tests ===" rm -rf blocks function read_file { cat << TEST size = $2; - lfs_file_open(&lfs, &file[0], "$1", LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], rbuffer, size) => size; + lfs_file_open(&lfs, &file, "$1", LFS_O_RDONLY) => 0; + lfs_file_read(&lfs, &file, rbuffer, size) => size; memcmp(rbuffer, wbuffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; TEST } @@ -21,11 +24,11 @@ function write_file { cat << TEST size = $2; - lfs_file_open(&lfs, &file[0], "$1", + lfs_file_open(&lfs, &file, "$1", LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0; memset(wbuffer, 'c', size); - lfs_file_write(&lfs, &file[0], wbuffer, size) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, wbuffer, size) => size; + lfs_file_close(&lfs, &file) => 0; TEST } @@ -33,6 +36,10 @@ echo "--- Entry grow test ---" scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; + uint8_t wbuffer[1024]; + uint8_t rbuffer[1024]; + lfs_size_t size; + lfs_mount(&lfs, &cfg) => 0; $(write_file "hi0" 20) $(write_file "hi1" 20) @@ -53,6 +60,10 @@ echo "--- Entry shrink test ---" scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; + uint8_t wbuffer[1024]; + uint8_t rbuffer[1024]; + lfs_size_t size; + lfs_mount(&lfs, &cfg) => 0; $(write_file "hi0" 20) $(write_file "hi1" 200) @@ -73,6 +84,10 @@ echo "--- Entry spill test ---" scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; + uint8_t wbuffer[1024]; + uint8_t rbuffer[1024]; + lfs_size_t size; + lfs_mount(&lfs, &cfg) => 0; $(write_file "hi0" 200) $(write_file "hi1" 200) @@ -90,6 +105,10 @@ echo "--- Entry push spill test ---" scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; + uint8_t wbuffer[1024]; + uint8_t rbuffer[1024]; + lfs_size_t size; + lfs_mount(&lfs, &cfg) => 0; $(write_file "hi0" 200) $(write_file "hi1" 20) @@ -110,6 +129,10 @@ echo "--- Entry push spill two test ---" scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; + uint8_t wbuffer[1024]; + uint8_t rbuffer[1024]; + lfs_size_t size; + lfs_mount(&lfs, &cfg) => 0; $(write_file "hi0" 200) $(write_file "hi1" 20) @@ -132,6 +155,10 @@ echo "--- Entry drop test ---" scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; + uint8_t wbuffer[1024]; + uint8_t rbuffer[1024]; + lfs_size_t size; + lfs_mount(&lfs, &cfg) => 0; $(write_file "hi0" 200) $(write_file "hi1" 200) @@ -163,21 +190,23 @@ scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; lfs_mount(&lfs, &cfg) => 0; - memset(buffer, 'm', 200); - buffer[200] = '\0'; + memset(path, 'm', 200); + path[200] = '\0'; - size = 400; - lfs_file_open(&lfs, &file[0], (char*)buffer, + lfs_size_t size = 400; + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0; + uint8_t wbuffer[1024]; memset(wbuffer, 'c', size); - lfs_file_write(&lfs, &file[0], wbuffer, size) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, wbuffer, size) => size; + lfs_file_close(&lfs, &file) => 0; size = 400; - lfs_file_open(&lfs, &file[0], (char*)buffer, LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], rbuffer, size) => size; + lfs_file_open(&lfs, &file, path, LFS_O_RDONLY) => 0; + uint8_t rbuffer[1024]; + lfs_file_read(&lfs, &file, rbuffer, size) => size; memcmp(rbuffer, wbuffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST @@ -186,36 +215,37 @@ scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; lfs_mount(&lfs, &cfg) => 0; - memset(buffer, 'm', 200); - buffer[200] = '\0'; + memset(path, 'm', 200); + path[200] = '\0'; - size = 40; - lfs_file_open(&lfs, &file[0], (char*)buffer, + lfs_size_t size = 40; + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0; + uint8_t wbuffer[1024]; memset(wbuffer, 'c', size); - lfs_file_write(&lfs, &file[0], wbuffer, size) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, wbuffer, size) => size; + lfs_file_close(&lfs, &file) => 0; size = 40; - lfs_file_open(&lfs, &file[0], (char*)buffer, LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], rbuffer, size) => size; + lfs_file_open(&lfs, &file, path, LFS_O_RDONLY) => 0; + uint8_t rbuffer[1024]; + lfs_file_read(&lfs, &file, rbuffer, size) => size; memcmp(rbuffer, wbuffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; size = 400; - lfs_file_open(&lfs, &file[0], (char*)buffer, + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0; memset(wbuffer, 'c', size); - lfs_file_write(&lfs, &file[0], wbuffer, size) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, wbuffer, size) => size; + lfs_file_close(&lfs, &file) => 0; size = 400; - lfs_file_open(&lfs, &file[0], (char*)buffer, LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], rbuffer, size) => size; + lfs_file_open(&lfs, &file, path, LFS_O_RDONLY) => 0; + lfs_file_read(&lfs, &file, rbuffer, size) => size; memcmp(rbuffer, wbuffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_files.sh b/tests/test_files.sh index 7e86ae5..be3f4e6 100755 --- a/tests/test_files.sh +++ b/tests/test_files.sh @@ -1,11 +1,14 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG + +echo "=== File tests ===" SMALLSIZE=32 MEDIUMSIZE=8192 LARGESIZE=262144 -echo "=== File tests ===" rm -rf blocks scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; @@ -14,58 +17,60 @@ TEST echo "--- Simple file test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "hello", LFS_O_WRONLY | LFS_O_CREAT) => 0; - size = strlen("Hello World!\n"); + lfs_file_open(&lfs, &file, "hello", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_size_t size = strlen("Hello World!\n"); + uint8_t wbuffer[1024]; memcpy(wbuffer, "Hello World!\n", size); - lfs_file_write(&lfs, &file[0], wbuffer, size) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_write(&lfs, &file, wbuffer, size) => size; + lfs_file_close(&lfs, &file) => 0; - lfs_file_open(&lfs, &file[0], "hello", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &file, "hello", LFS_O_RDONLY) => 0; size = strlen("Hello World!\n"); - lfs_file_read(&lfs, &file[0], rbuffer, size) => size; + uint8_t rbuffer[1024]; + lfs_file_read(&lfs, &file, rbuffer, size) => size; memcmp(rbuffer, wbuffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST w_test() { scripts/test.py ${4:-} << TEST - size = $1; + lfs_size_t size = $1; lfs_size_t chunk = 31; srand(0); lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "$2", + lfs_file_open(&lfs, &file, "$2", ${3:-LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC}) => 0; for (lfs_size_t i = 0; i < size; i += chunk) { chunk = (chunk < size - i) ? chunk : size - i; for (lfs_size_t b = 0; b < chunk; b++) { buffer[b] = rand() & 0xff; } - lfs_file_write(&lfs, &file[0], buffer, chunk) => chunk; + lfs_file_write(&lfs, &file, buffer, chunk) => chunk; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST } r_test() { scripts/test.py << TEST - size = $1; + lfs_size_t size = $1; lfs_size_t chunk = 29; srand(0); lfs_mount(&lfs, &cfg) => 0; lfs_stat(&lfs, "$2", &info) => 0; info.type => LFS_TYPE_REG; info.size => size; - lfs_file_open(&lfs, &file[0], "$2", ${3:-LFS_O_RDONLY}) => 0; + lfs_file_open(&lfs, &file, "$2", ${3:-LFS_O_RDONLY}) => 0; for (lfs_size_t i = 0; i < size; i += chunk) { chunk = (chunk < size - i) ? chunk : size - i; - lfs_file_read(&lfs, &file[0], buffer, chunk) => chunk; + lfs_file_read(&lfs, &file, buffer, chunk) => chunk; for (lfs_size_t b = 0; b < chunk && i+b < size; b++) { buffer[b] => rand() & 0xff; } } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST } @@ -107,31 +112,31 @@ r_test 0 noavacado echo "--- Dir check ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; - lfs_dir_read(&lfs, &dir[0], &info) => 1; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hello") => 0; info.type => LFS_TYPE_REG; info.size => strlen("Hello World!\n"); - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "largeavacado") => 0; info.type => LFS_TYPE_REG; info.size => $LARGESIZE; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "mediumavacado") => 0; info.type => LFS_TYPE_REG; info.size => $MEDIUMSIZE; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "noavacado") => 0; info.type => LFS_TYPE_REG; info.size => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "smallavacado") => 0; info.type => LFS_TYPE_REG; info.size => $SMALLSIZE; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST @@ -144,15 +149,14 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; lfs_mkdir(&lfs, "directory") => 0; for (unsigned i = 0; i < 300; i++) { - snprintf((char*)buffer, sizeof(buffer), "file_%03d", i); - lfs_file_open(&lfs, &file[0], (char*)buffer, LFS_O_WRONLY | LFS_O_CREAT) => 0; - size = 6; - memcpy(wbuffer, "Hello", size); - lfs_file_write(&lfs, &file[0], wbuffer, size) => size; - lfs_file_close(&lfs, &file[0]) => 0; + sprintf(path, "file_%03d", i); + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_size_t size = 6; + memcpy(buffer, "Hello", size); + lfs_file_write(&lfs, &file, buffer, size) => size; + lfs_file_close(&lfs, &file) => 0; } lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_format.sh b/tests/test_format.sh index 425bdb2..f0972bd 100755 --- a/tests/test_format.sh +++ b/tests/test_format.sh @@ -1,5 +1,7 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG echo "=== Formatting tests ===" rm -rf blocks @@ -46,5 +48,4 @@ scripts/test.py << TEST lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_interspersed.sh b/tests/test_interspersed.sh index 5eead1a..84c5dd8 100755 --- a/tests/test_interspersed.sh +++ b/tests/test_interspersed.sh @@ -1,5 +1,7 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG echo "=== Interspersed tests ===" rm -rf blocks @@ -10,69 +12,70 @@ TEST echo "--- Interspersed file test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "a", LFS_O_WRONLY | LFS_O_CREAT) => 0; - lfs_file_open(&lfs, &file[1], "b", LFS_O_WRONLY | LFS_O_CREAT) => 0; - lfs_file_open(&lfs, &file[2], "c", LFS_O_WRONLY | LFS_O_CREAT) => 0; - lfs_file_open(&lfs, &file[3], "d", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_file_t files[4]; + lfs_file_open(&lfs, &files[0], "a", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_file_open(&lfs, &files[1], "b", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_file_open(&lfs, &files[2], "c", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_file_open(&lfs, &files[3], "d", LFS_O_WRONLY | LFS_O_CREAT) => 0; for (int i = 0; i < 10; i++) { - lfs_file_write(&lfs, &file[0], (const void*)"a", 1) => 1; - lfs_file_write(&lfs, &file[1], (const void*)"b", 1) => 1; - lfs_file_write(&lfs, &file[2], (const void*)"c", 1) => 1; - lfs_file_write(&lfs, &file[3], (const void*)"d", 1) => 1; + lfs_file_write(&lfs, &files[0], (const void*)"a", 1) => 1; + lfs_file_write(&lfs, &files[1], (const void*)"b", 1) => 1; + lfs_file_write(&lfs, &files[2], (const void*)"c", 1) => 1; + lfs_file_write(&lfs, &files[3], (const void*)"d", 1) => 1; } - lfs_file_close(&lfs, &file[0]); - lfs_file_close(&lfs, &file[1]); - lfs_file_close(&lfs, &file[2]); - lfs_file_close(&lfs, &file[3]); + lfs_file_close(&lfs, &files[0]); + lfs_file_close(&lfs, &files[1]); + lfs_file_close(&lfs, &files[2]); + lfs_file_close(&lfs, &files[3]); - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "a") => 0; info.type => LFS_TYPE_REG; info.size => 10; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "b") => 0; info.type => LFS_TYPE_REG; info.size => 10; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "c") => 0; info.type => LFS_TYPE_REG; info.size => 10; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "d") => 0; info.type => LFS_TYPE_REG; info.size => 10; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; - lfs_file_open(&lfs, &file[0], "a", LFS_O_RDONLY) => 0; - lfs_file_open(&lfs, &file[1], "b", LFS_O_RDONLY) => 0; - lfs_file_open(&lfs, &file[2], "c", LFS_O_RDONLY) => 0; - lfs_file_open(&lfs, &file[3], "d", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &files[0], "a", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &files[1], "b", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &files[2], "c", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &files[3], "d", LFS_O_RDONLY) => 0; for (int i = 0; i < 10; i++) { - lfs_file_read(&lfs, &file[0], buffer, 1) => 1; + lfs_file_read(&lfs, &files[0], buffer, 1) => 1; buffer[0] => 'a'; - lfs_file_read(&lfs, &file[1], buffer, 1) => 1; + lfs_file_read(&lfs, &files[1], buffer, 1) => 1; buffer[0] => 'b'; - lfs_file_read(&lfs, &file[2], buffer, 1) => 1; + lfs_file_read(&lfs, &files[2], buffer, 1) => 1; buffer[0] => 'c'; - lfs_file_read(&lfs, &file[3], buffer, 1) => 1; + lfs_file_read(&lfs, &files[3], buffer, 1) => 1; buffer[0] => 'd'; } - lfs_file_close(&lfs, &file[0]); - lfs_file_close(&lfs, &file[1]); - lfs_file_close(&lfs, &file[2]); - lfs_file_close(&lfs, &file[3]); + lfs_file_close(&lfs, &files[0]); + lfs_file_close(&lfs, &files[1]); + lfs_file_close(&lfs, &files[2]); + lfs_file_close(&lfs, &files[3]); lfs_unmount(&lfs) => 0; TEST @@ -80,10 +83,11 @@ TEST echo "--- Interspersed remove file test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "e", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_file_t files[4]; + lfs_file_open(&lfs, &files[0], "e", LFS_O_WRONLY | LFS_O_CREAT) => 0; for (int i = 0; i < 5; i++) { - lfs_file_write(&lfs, &file[0], (const void*)"e", 1) => 1; + lfs_file_write(&lfs, &files[0], (const void*)"e", 1) => 1; } lfs_remove(&lfs, "a") => 0; @@ -92,33 +96,33 @@ scripts/test.py << TEST lfs_remove(&lfs, "d") => 0; for (int i = 0; i < 5; i++) { - lfs_file_write(&lfs, &file[0], (const void*)"e", 1) => 1; + lfs_file_write(&lfs, &files[0], (const void*)"e", 1) => 1; } - lfs_file_close(&lfs, &file[0]); + lfs_file_close(&lfs, &files[0]); - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "e") => 0; info.type => LFS_TYPE_REG; info.size => 10; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; - lfs_file_open(&lfs, &file[0], "e", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &files[0], "e", LFS_O_RDONLY) => 0; for (int i = 0; i < 10; i++) { - lfs_file_read(&lfs, &file[0], buffer, 1) => 1; + lfs_file_read(&lfs, &files[0], buffer, 1) => 1; buffer[0] => 'e'; } - lfs_file_close(&lfs, &file[0]); + lfs_file_close(&lfs, &files[0]); lfs_unmount(&lfs) => 0; TEST @@ -126,61 +130,61 @@ TEST echo "--- Remove inconveniently test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "e", LFS_O_WRONLY | LFS_O_TRUNC) => 0; - lfs_file_open(&lfs, &file[1], "f", LFS_O_WRONLY | LFS_O_CREAT) => 0; - lfs_file_open(&lfs, &file[2], "g", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_file_t files[4]; + lfs_file_open(&lfs, &files[0], "e", LFS_O_WRONLY | LFS_O_TRUNC) => 0; + lfs_file_open(&lfs, &files[1], "f", LFS_O_WRONLY | LFS_O_CREAT) => 0; + lfs_file_open(&lfs, &files[2], "g", LFS_O_WRONLY | LFS_O_CREAT) => 0; for (int i = 0; i < 5; i++) { - lfs_file_write(&lfs, &file[0], (const void*)"e", 1) => 1; - lfs_file_write(&lfs, &file[1], (const void*)"f", 1) => 1; - lfs_file_write(&lfs, &file[2], (const void*)"g", 1) => 1; + lfs_file_write(&lfs, &files[0], (const void*)"e", 1) => 1; + lfs_file_write(&lfs, &files[1], (const void*)"f", 1) => 1; + lfs_file_write(&lfs, &files[2], (const void*)"g", 1) => 1; } lfs_remove(&lfs, "f") => 0; for (int i = 0; i < 5; i++) { - lfs_file_write(&lfs, &file[0], (const void*)"e", 1) => 1; - lfs_file_write(&lfs, &file[1], (const void*)"f", 1) => 1; - lfs_file_write(&lfs, &file[2], (const void*)"g", 1) => 1; + lfs_file_write(&lfs, &files[0], (const void*)"e", 1) => 1; + lfs_file_write(&lfs, &files[1], (const void*)"f", 1) => 1; + lfs_file_write(&lfs, &files[2], (const void*)"g", 1) => 1; } - lfs_file_close(&lfs, &file[0]); - lfs_file_close(&lfs, &file[1]); - lfs_file_close(&lfs, &file[2]); + lfs_file_close(&lfs, &files[0]); + lfs_file_close(&lfs, &files[1]); + lfs_file_close(&lfs, &files[2]); - lfs_dir_open(&lfs, &dir[0], "/") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "/") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; info.type => LFS_TYPE_DIR; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "e") => 0; info.type => LFS_TYPE_REG; info.size => 10; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "g") => 0; info.type => LFS_TYPE_REG; info.size => 10; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; - lfs_file_open(&lfs, &file[0], "e", LFS_O_RDONLY) => 0; - lfs_file_open(&lfs, &file[1], "g", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &files[0], "e", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &files[1], "g", LFS_O_RDONLY) => 0; for (int i = 0; i < 10; i++) { - lfs_file_read(&lfs, &file[0], buffer, 1) => 1; + lfs_file_read(&lfs, &files[0], buffer, 1) => 1; buffer[0] => 'e'; - lfs_file_read(&lfs, &file[1], buffer, 1) => 1; + lfs_file_read(&lfs, &files[1], buffer, 1) => 1; buffer[0] => 'g'; } - lfs_file_close(&lfs, &file[0]); - lfs_file_close(&lfs, &file[1]); + lfs_file_close(&lfs, &files[0]); + lfs_file_close(&lfs, &files[1]); lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_move.sh b/tests/test_move.sh index 9988887..f52ef22 100755 --- a/tests/test_move.sh +++ b/tests/test_move.sh @@ -1,5 +1,7 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG echo "=== Move tests ===" rm -rf blocks @@ -17,11 +19,11 @@ scripts/test.py << TEST lfs_mkdir(&lfs, "a/hi/bonjour") => 0; lfs_mkdir(&lfs, "a/hi/ohayo") => 0; - lfs_file_open(&lfs, &file[0], "a/hello", LFS_O_CREAT | LFS_O_WRONLY) => 0; - lfs_file_write(&lfs, &file[0], "hola\n", 5) => 5; - lfs_file_write(&lfs, &file[0], "bonjour\n", 8) => 8; - lfs_file_write(&lfs, &file[0], "ohayo\n", 6) => 6; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_open(&lfs, &file, "a/hello", LFS_O_CREAT | LFS_O_WRONLY) => 0; + lfs_file_write(&lfs, &file, "hola\n", 5) => 5; + lfs_file_write(&lfs, &file, "bonjour\n", 8) => 8; + lfs_file_write(&lfs, &file, "ohayo\n", 6) => 6; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST @@ -33,23 +35,23 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "a") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "a") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hi") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; - lfs_dir_open(&lfs, &dir[0], "b") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + lfs_dir_open(&lfs, &dir, "b") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hello") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -62,21 +64,21 @@ TEST scripts/corrupt.py -n 1 scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "b") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "b") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; - lfs_dir_open(&lfs, &dir[0], "c") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + lfs_dir_open(&lfs, &dir, "c") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hello") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -89,21 +91,21 @@ TEST scripts/corrupt.py -n 2 scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "c") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "c") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hello") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; - lfs_dir_open(&lfs, &dir[0], "d") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + lfs_dir_open(&lfs, &dir, "d") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -115,21 +117,21 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "c") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "c") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; - lfs_dir_open(&lfs, &dir[0], "d") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + lfs_dir_open(&lfs, &dir, "d") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hello") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -141,21 +143,21 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "a") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "a") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; - lfs_dir_open(&lfs, &dir[0], "b") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + lfs_dir_open(&lfs, &dir, "b") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hi") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -168,21 +170,21 @@ TEST scripts/corrupt.py -n 1 scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "b") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "b") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; - lfs_dir_open(&lfs, &dir[0], "c") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + lfs_dir_open(&lfs, &dir, "c") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hi") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -195,23 +197,23 @@ TEST scripts/corrupt.py -n 2 scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "c") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "c") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hi") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; - lfs_dir_open(&lfs, &dir[0], "d") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + lfs_dir_open(&lfs, &dir, "d") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hello") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -223,23 +225,23 @@ scripts/test.py << TEST TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "c") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "c") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; - lfs_dir_open(&lfs, &dir[0], "d") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; + lfs_dir_open(&lfs, &dir, "d") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hello") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hi") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; lfs_unmount(&lfs) => 0; TEST @@ -247,36 +249,36 @@ echo "--- Move check ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "a/hi") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "b/hi") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "c/hi") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "a/hi") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "b/hi") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "c/hi") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "d/hi") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "d/hi") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "bonjour") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hola") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "ohayo") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; - lfs_dir_open(&lfs, &dir[0], "a/hello") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "b/hello") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "c/hello") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "a/hello") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "b/hello") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "c/hello") => LFS_ERR_NOENT; - lfs_file_open(&lfs, &file[0], "d/hello", LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], buffer, 5) => 5; + lfs_file_open(&lfs, &file, "d/hello", LFS_O_RDONLY) => 0; + lfs_file_read(&lfs, &file, buffer, 5) => 5; memcmp(buffer, "hola\n", 5) => 0; - lfs_file_read(&lfs, &file[0], buffer, 8) => 8; + lfs_file_read(&lfs, &file, buffer, 8) => 8; memcmp(buffer, "bonjour\n", 8) => 0; - lfs_file_read(&lfs, &file[0], buffer, 6) => 6; + lfs_file_read(&lfs, &file, buffer, 6) => 6; memcmp(buffer, "ohayo\n", 6) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST @@ -293,40 +295,39 @@ TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "a/hi") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "b") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "c") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "a/hi") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "b") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "c") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "d/hi") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "d/hi") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "bonjour") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "hola") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "ohayo") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_read(&lfs, &dir, &info) => 0; + lfs_dir_close(&lfs, &dir) => 0; - lfs_dir_open(&lfs, &dir[0], "a/hello") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "b") => LFS_ERR_NOENT; - lfs_dir_open(&lfs, &dir[0], "c") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "a/hello") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "b") => LFS_ERR_NOENT; + lfs_dir_open(&lfs, &dir, "c") => LFS_ERR_NOENT; - lfs_file_open(&lfs, &file[0], "d/hello", LFS_O_RDONLY) => 0; - lfs_file_read(&lfs, &file[0], buffer, 5) => 5; + lfs_file_open(&lfs, &file, "d/hello", LFS_O_RDONLY) => 0; + lfs_file_read(&lfs, &file, buffer, 5) => 5; memcmp(buffer, "hola\n", 5) => 0; - lfs_file_read(&lfs, &file[0], buffer, 8) => 8; + lfs_file_read(&lfs, &file, buffer, 8) => 8; memcmp(buffer, "bonjour\n", 8) => 0; - lfs_file_read(&lfs, &file[0], buffer, 6) => 6; + lfs_file_read(&lfs, &file, buffer, 6) => 6; memcmp(buffer, "ohayo\n", 6) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_orphan.sh b/tests/test_orphan.sh index cf1fa9f..b0a8493 100755 --- a/tests/test_orphan.sh +++ b/tests/test_orphan.sh @@ -1,5 +1,7 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG echo "=== Orphan tests ===" rm -rf blocks @@ -41,5 +43,4 @@ scripts/test.py << TEST lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_paths.sh b/tests/test_paths.sh index 5389248..f720e39 100755 --- a/tests/test_paths.sh +++ b/tests/test_paths.sh @@ -1,5 +1,7 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG echo "=== Path tests ===" rm -rf blocks @@ -126,7 +128,7 @@ scripts/test.py << TEST strcmp(info.name, "/") => 0; lfs_mkdir(&lfs, "/") => LFS_ERR_EXIST; - lfs_file_open(&lfs, &file[0], "/", LFS_O_WRONLY | LFS_O_CREAT) + lfs_file_open(&lfs, &file, "/", LFS_O_WRONLY | LFS_O_CREAT) => LFS_ERR_ISDIR; // more corner cases @@ -158,17 +160,17 @@ TEST echo "--- Max path test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - memset(buffer, 'w', LFS_NAME_MAX+1); - buffer[LFS_NAME_MAX+2] = '\0'; - lfs_mkdir(&lfs, (char*)buffer) => LFS_ERR_NAMETOOLONG; - lfs_file_open(&lfs, &file[0], (char*)buffer, + memset(path, 'w', LFS_NAME_MAX+1); + path[LFS_NAME_MAX+2] = '\0'; + lfs_mkdir(&lfs, path) => LFS_ERR_NAMETOOLONG; + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => LFS_ERR_NAMETOOLONG; - memcpy(buffer, "coffee/", strlen("coffee/")); - memset(buffer+strlen("coffee/"), 'w', LFS_NAME_MAX+1); - buffer[strlen("coffee/")+LFS_NAME_MAX+2] = '\0'; - lfs_mkdir(&lfs, (char*)buffer) => LFS_ERR_NAMETOOLONG; - lfs_file_open(&lfs, &file[0], (char*)buffer, + memcpy(path, "coffee/", strlen("coffee/")); + memset(path+strlen("coffee/"), 'w', LFS_NAME_MAX+1); + path[strlen("coffee/")+LFS_NAME_MAX+2] = '\0'; + lfs_mkdir(&lfs, path) => LFS_ERR_NAMETOOLONG; + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => LFS_ERR_NAMETOOLONG; lfs_unmount(&lfs) => 0; TEST @@ -176,26 +178,25 @@ TEST echo "--- Really big path test ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - memset(buffer, 'w', LFS_NAME_MAX); - buffer[LFS_NAME_MAX+1] = '\0'; - lfs_mkdir(&lfs, (char*)buffer) => 0; - lfs_remove(&lfs, (char*)buffer) => 0; - lfs_file_open(&lfs, &file[0], (char*)buffer, + memset(path, 'w', LFS_NAME_MAX); + path[LFS_NAME_MAX+1] = '\0'; + lfs_mkdir(&lfs, path) => 0; + lfs_remove(&lfs, path) => 0; + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0; - lfs_file_close(&lfs, &file[0]) => 0; - lfs_remove(&lfs, (char*)buffer) => 0; - - memcpy(buffer, "coffee/", strlen("coffee/")); - memset(buffer+strlen("coffee/"), 'w', LFS_NAME_MAX); - buffer[strlen("coffee/")+LFS_NAME_MAX+1] = '\0'; - lfs_mkdir(&lfs, (char*)buffer) => 0; - lfs_remove(&lfs, (char*)buffer) => 0; - lfs_file_open(&lfs, &file[0], (char*)buffer, + lfs_file_close(&lfs, &file) => 0; + lfs_remove(&lfs, path) => 0; + + memcpy(path, "coffee/", strlen("coffee/")); + memset(path+strlen("coffee/"), 'w', LFS_NAME_MAX); + path[strlen("coffee/")+LFS_NAME_MAX+1] = '\0'; + lfs_mkdir(&lfs, path) => 0; + lfs_remove(&lfs, path) => 0; + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT) => 0; - lfs_file_close(&lfs, &file[0]) => 0; - lfs_remove(&lfs, (char*)buffer) => 0; + lfs_file_close(&lfs, &file) => 0; + lfs_remove(&lfs, path) => 0; lfs_unmount(&lfs) => 0; TEST -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_seek.sh b/tests/test_seek.sh index 83c3685..e5696d0 100755 --- a/tests/test_seek.sh +++ b/tests/test_seek.sh @@ -1,28 +1,31 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG + +echo "=== Seek tests ===" SMALLSIZE=4 MEDIUMSIZE=128 LARGESIZE=132 -echo "=== Seek tests ===" rm -rf blocks scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; lfs_mount(&lfs, &cfg) => 0; lfs_mkdir(&lfs, "hello") => 0; for (int i = 0; i < $LARGESIZE; i++) { - sprintf((char*)buffer, "hello/kitty%03d", i); - lfs_file_open(&lfs, &file[0], (char*)buffer, + sprintf(path, "hello/kitty%03d", i); + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT | LFS_O_APPEND) => 0; - size = strlen("kittycatcat"); + lfs_size_t size = strlen("kittycatcat"); memcpy(buffer, "kittycatcat", size); for (int j = 0; j < $LARGESIZE; j++) { - lfs_file_write(&lfs, &file[0], buffer, size); + lfs_file_write(&lfs, &file, buffer, size); } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; } lfs_unmount(&lfs) => 0; TEST @@ -30,330 +33,330 @@ TEST echo "--- Simple dir seek ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "hello") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "hello") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; lfs_soff_t pos; int i; for (i = 0; i < $SMALLSIZE; i++) { - sprintf((char*)buffer, "kitty%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; - pos = lfs_dir_tell(&lfs, &dir[0]); + sprintf(path, "kitty%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; + pos = lfs_dir_tell(&lfs, &dir); } pos >= 0 => 1; - lfs_dir_seek(&lfs, &dir[0], pos) => 0; - sprintf((char*)buffer, "kitty%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + lfs_dir_seek(&lfs, &dir, pos) => 0; + sprintf(path, "kitty%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; - lfs_dir_rewind(&lfs, &dir[0]) => 0; - sprintf((char*)buffer, "kitty%03d", 0); - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_rewind(&lfs, &dir) => 0; + sprintf(path, "kitty%03d", 0); + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; - lfs_dir_seek(&lfs, &dir[0], pos) => 0; - sprintf((char*)buffer, "kitty%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + lfs_dir_seek(&lfs, &dir, pos) => 0; + sprintf(path, "kitty%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Large dir seek ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_dir_open(&lfs, &dir[0], "hello") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_open(&lfs, &dir, "hello") => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; lfs_soff_t pos; int i; for (i = 0; i < $MEDIUMSIZE; i++) { - sprintf((char*)buffer, "kitty%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; - pos = lfs_dir_tell(&lfs, &dir[0]); + sprintf(path, "kitty%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; + pos = lfs_dir_tell(&lfs, &dir); } pos >= 0 => 1; - lfs_dir_seek(&lfs, &dir[0], pos) => 0; - sprintf((char*)buffer, "kitty%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + lfs_dir_seek(&lfs, &dir, pos) => 0; + sprintf(path, "kitty%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; - lfs_dir_rewind(&lfs, &dir[0]) => 0; - sprintf((char*)buffer, "kitty%03d", 0); - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_rewind(&lfs, &dir) => 0; + sprintf(path, "kitty%03d", 0); + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, ".") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; + lfs_dir_read(&lfs, &dir, &info) => 1; strcmp(info.name, "..") => 0; - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; - lfs_dir_seek(&lfs, &dir[0], pos) => 0; - sprintf((char*)buffer, "kitty%03d", i); - lfs_dir_read(&lfs, &dir[0], &info) => 1; - strcmp(info.name, (char*)buffer) => 0; + lfs_dir_seek(&lfs, &dir, pos) => 0; + sprintf(path, "kitty%03d", i); + lfs_dir_read(&lfs, &dir, &info) => 1; + strcmp(info.name, path) => 0; - lfs_dir_close(&lfs, &dir[0]) => 0; + lfs_dir_close(&lfs, &dir) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Simple file seek ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "hello/kitty042", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &file, "hello/kitty042", LFS_O_RDONLY) => 0; lfs_soff_t pos; - size = strlen("kittycatcat"); + lfs_size_t size = strlen("kittycatcat"); for (int i = 0; i < $SMALLSIZE; i++) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - pos = lfs_file_tell(&lfs, &file[0]); + pos = lfs_file_tell(&lfs, &file); } pos >= 0 => 1; - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_rewind(&lfs, &file[0]) => 0; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_rewind(&lfs, &file) => 0; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_CUR) => size; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_CUR) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], size, LFS_SEEK_CUR) => 3*size; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, size, LFS_SEEK_CUR) => 3*size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], -size, LFS_SEEK_CUR) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, -size, LFS_SEEK_CUR) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], -size, LFS_SEEK_END) >= 0 => 1; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, -size, LFS_SEEK_END) >= 0 => 1; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - size = lfs_file_size(&lfs, &file[0]); - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_CUR) => size; + size = lfs_file_size(&lfs, &file); + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_CUR) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Large file seek ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "hello/kitty042", LFS_O_RDONLY) => 0; + lfs_file_open(&lfs, &file, "hello/kitty042", LFS_O_RDONLY) => 0; lfs_soff_t pos; - size = strlen("kittycatcat"); + lfs_size_t size = strlen("kittycatcat"); for (int i = 0; i < $MEDIUMSIZE; i++) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - pos = lfs_file_tell(&lfs, &file[0]); + pos = lfs_file_tell(&lfs, &file); } pos >= 0 => 1; - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_rewind(&lfs, &file[0]) => 0; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_rewind(&lfs, &file) => 0; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_CUR) => size; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_CUR) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], size, LFS_SEEK_CUR) => 3*size; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, size, LFS_SEEK_CUR) => 3*size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], -size, LFS_SEEK_CUR) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, -size, LFS_SEEK_CUR) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], -size, LFS_SEEK_END) >= 0 => 1; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, -size, LFS_SEEK_END) >= 0 => 1; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - size = lfs_file_size(&lfs, &file[0]); - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_CUR) => size; + size = lfs_file_size(&lfs, &file); + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_CUR) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Simple file seek and write ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "hello/kitty042", LFS_O_RDWR) => 0; + lfs_file_open(&lfs, &file, "hello/kitty042", LFS_O_RDWR) => 0; lfs_soff_t pos; - size = strlen("kittycatcat"); + lfs_size_t size = strlen("kittycatcat"); for (int i = 0; i < $SMALLSIZE; i++) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - pos = lfs_file_tell(&lfs, &file[0]); + pos = lfs_file_tell(&lfs, &file); } pos >= 0 => 1; memcpy(buffer, "doggodogdog", size); - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_write(&lfs, &file, buffer, size) => size; - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "doggodogdog", size) => 0; - lfs_file_rewind(&lfs, &file[0]) => 0; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_rewind(&lfs, &file) => 0; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "doggodogdog", size) => 0; - lfs_file_seek(&lfs, &file[0], -size, LFS_SEEK_END) >= 0 => 1; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, -size, LFS_SEEK_END) >= 0 => 1; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - size = lfs_file_size(&lfs, &file[0]); - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_CUR) => size; + size = lfs_file_size(&lfs, &file); + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_CUR) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Large file seek and write ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "hello/kitty042", LFS_O_RDWR) => 0; + lfs_file_open(&lfs, &file, "hello/kitty042", LFS_O_RDWR) => 0; lfs_soff_t pos; - size = strlen("kittycatcat"); + lfs_size_t size = strlen("kittycatcat"); for (int i = 0; i < $MEDIUMSIZE; i++) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; if (i != $SMALLSIZE) { memcmp(buffer, "kittycatcat", size) => 0; } - pos = lfs_file_tell(&lfs, &file[0]); + pos = lfs_file_tell(&lfs, &file); } pos >= 0 => 1; memcpy(buffer, "doggodogdog", size); - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_write(&lfs, &file, buffer, size) => size; - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "doggodogdog", size) => 0; - lfs_file_rewind(&lfs, &file[0]) => 0; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_rewind(&lfs, &file) => 0; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_seek(&lfs, &file[0], pos, LFS_SEEK_SET) => pos; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, pos, LFS_SEEK_SET) => pos; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "doggodogdog", size) => 0; - lfs_file_seek(&lfs, &file[0], -size, LFS_SEEK_END) >= 0 => 1; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, -size, LFS_SEEK_END) >= 0 => 1; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - size = lfs_file_size(&lfs, &file[0]); - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_CUR) => size; + size = lfs_file_size(&lfs, &file); + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_CUR) => size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Boundary seek and write ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "hello/kitty042", LFS_O_RDWR) => 0; + lfs_file_open(&lfs, &file, "hello/kitty042", LFS_O_RDWR) => 0; - size = strlen("hedgehoghog"); + lfs_size_t size = strlen("hedgehoghog"); const lfs_soff_t offsets[] = {512, 1020, 513, 1021, 511, 1019}; for (unsigned i = 0; i < sizeof(offsets) / sizeof(offsets[0]); i++) { lfs_soff_t off = offsets[i]; memcpy(buffer, "hedgehoghog", size); - lfs_file_seek(&lfs, &file[0], off, LFS_SEEK_SET) => off; - lfs_file_write(&lfs, &file[0], buffer, size) => size; - lfs_file_seek(&lfs, &file[0], off, LFS_SEEK_SET) => off; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, off, LFS_SEEK_SET) => off; + lfs_file_write(&lfs, &file, buffer, size) => size; + lfs_file_seek(&lfs, &file, off, LFS_SEEK_SET) => off; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "hedgehoghog", size) => 0; - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_SET) => 0; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_SET) => 0; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "kittycatcat", size) => 0; - lfs_file_sync(&lfs, &file[0]) => 0; + lfs_file_sync(&lfs, &file) => 0; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Out-of-bounds seek ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "hello/kitty042", LFS_O_RDWR) => 0; + lfs_file_open(&lfs, &file, "hello/kitty042", LFS_O_RDWR) => 0; - size = strlen("kittycatcat"); - lfs_file_size(&lfs, &file[0]) => $LARGESIZE*size; - lfs_file_seek(&lfs, &file[0], ($LARGESIZE+$SMALLSIZE)*size, + lfs_size_t size = strlen("kittycatcat"); + lfs_file_size(&lfs, &file) => $LARGESIZE*size; + lfs_file_seek(&lfs, &file, ($LARGESIZE+$SMALLSIZE)*size, LFS_SEEK_SET) => ($LARGESIZE+$SMALLSIZE)*size; - lfs_file_read(&lfs, &file[0], buffer, size) => 0; + lfs_file_read(&lfs, &file, buffer, size) => 0; memcpy(buffer, "porcupineee", size); - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; - lfs_file_seek(&lfs, &file[0], ($LARGESIZE+$SMALLSIZE)*size, + lfs_file_seek(&lfs, &file, ($LARGESIZE+$SMALLSIZE)*size, LFS_SEEK_SET) => ($LARGESIZE+$SMALLSIZE)*size; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "porcupineee", size) => 0; - lfs_file_seek(&lfs, &file[0], $LARGESIZE*size, + lfs_file_seek(&lfs, &file, $LARGESIZE*size, LFS_SEEK_SET) => $LARGESIZE*size; - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "\0\0\0\0\0\0\0\0\0\0\0", size) => 0; - lfs_file_seek(&lfs, &file[0], -(($LARGESIZE+$SMALLSIZE)*size), + lfs_file_seek(&lfs, &file, -(($LARGESIZE+$SMALLSIZE)*size), LFS_SEEK_CUR) => LFS_ERR_INVAL; - lfs_file_tell(&lfs, &file[0]) => ($LARGESIZE+1)*size; + lfs_file_tell(&lfs, &file) => ($LARGESIZE+1)*size; - lfs_file_seek(&lfs, &file[0], -(($LARGESIZE+2*$SMALLSIZE)*size), + lfs_file_seek(&lfs, &file, -(($LARGESIZE+2*$SMALLSIZE)*size), LFS_SEEK_END) => LFS_ERR_INVAL; - lfs_file_tell(&lfs, &file[0]) => ($LARGESIZE+1)*size; + lfs_file_tell(&lfs, &file) => ($LARGESIZE+1)*size; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST @@ -362,68 +365,67 @@ for SIZE in $SMALLSIZE $MEDIUMSIZE $LARGESIZE do scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "hello/tinykitty$SIZE", + lfs_file_open(&lfs, &file, "hello/tinykitty$SIZE", LFS_O_RDWR | LFS_O_CREAT) => 0; int j = 0; int k = 0; memcpy(buffer, "abcdefghijklmnopqrstuvwxyz", 26); for (unsigned i = 0; i < $SIZE; i++) { - lfs_file_write(&lfs, &file[0], &buffer[j++ % 26], 1) => 1; - lfs_file_tell(&lfs, &file[0]) => i+1; - lfs_file_size(&lfs, &file[0]) => i+1; + lfs_file_write(&lfs, &file, &buffer[j++ % 26], 1) => 1; + lfs_file_tell(&lfs, &file) => i+1; + lfs_file_size(&lfs, &file) => i+1; } - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_SET) => 0; - lfs_file_tell(&lfs, &file[0]) => 0; - lfs_file_size(&lfs, &file[0]) => $SIZE; + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_SET) => 0; + lfs_file_tell(&lfs, &file) => 0; + lfs_file_size(&lfs, &file) => $SIZE; for (unsigned i = 0; i < $SIZE; i++) { uint8_t c; - lfs_file_read(&lfs, &file[0], &c, 1) => 1; + lfs_file_read(&lfs, &file, &c, 1) => 1; c => buffer[k++ % 26]; } - lfs_file_sync(&lfs, &file[0]) => 0; - lfs_file_tell(&lfs, &file[0]) => $SIZE; - lfs_file_size(&lfs, &file[0]) => $SIZE; + lfs_file_sync(&lfs, &file) => 0; + lfs_file_tell(&lfs, &file) => $SIZE; + lfs_file_size(&lfs, &file) => $SIZE; - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_SET) => 0; + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_SET) => 0; for (unsigned i = 0; i < $SIZE; i++) { - lfs_file_write(&lfs, &file[0], &buffer[j++ % 26], 1) => 1; - lfs_file_tell(&lfs, &file[0]) => i+1; - lfs_file_size(&lfs, &file[0]) => $SIZE; - lfs_file_sync(&lfs, &file[0]) => 0; - lfs_file_tell(&lfs, &file[0]) => i+1; - lfs_file_size(&lfs, &file[0]) => $SIZE; + lfs_file_write(&lfs, &file, &buffer[j++ % 26], 1) => 1; + lfs_file_tell(&lfs, &file) => i+1; + lfs_file_size(&lfs, &file) => $SIZE; + lfs_file_sync(&lfs, &file) => 0; + lfs_file_tell(&lfs, &file) => i+1; + lfs_file_size(&lfs, &file) => $SIZE; if (i < $SIZE-2) { uint8_t c[3]; - lfs_file_seek(&lfs, &file[0], -1, LFS_SEEK_CUR) => i; - lfs_file_read(&lfs, &file[0], &c, 3) => 3; - lfs_file_tell(&lfs, &file[0]) => i+3; - lfs_file_size(&lfs, &file[0]) => $SIZE; - lfs_file_seek(&lfs, &file[0], i+1, LFS_SEEK_SET) => i+1; - lfs_file_tell(&lfs, &file[0]) => i+1; - lfs_file_size(&lfs, &file[0]) => $SIZE; + lfs_file_seek(&lfs, &file, -1, LFS_SEEK_CUR) => i; + lfs_file_read(&lfs, &file, &c, 3) => 3; + lfs_file_tell(&lfs, &file) => i+3; + lfs_file_size(&lfs, &file) => $SIZE; + lfs_file_seek(&lfs, &file, i+1, LFS_SEEK_SET) => i+1; + lfs_file_tell(&lfs, &file) => i+1; + lfs_file_size(&lfs, &file) => $SIZE; } } - lfs_file_seek(&lfs, &file[0], 0, LFS_SEEK_SET) => 0; - lfs_file_tell(&lfs, &file[0]) => 0; - lfs_file_size(&lfs, &file[0]) => $SIZE; + lfs_file_seek(&lfs, &file, 0, LFS_SEEK_SET) => 0; + lfs_file_tell(&lfs, &file) => 0; + lfs_file_size(&lfs, &file) => $SIZE; for (unsigned i = 0; i < $SIZE; i++) { uint8_t c; - lfs_file_read(&lfs, &file[0], &c, 1) => 1; + lfs_file_read(&lfs, &file, &c, 1) => 1; c => buffer[k++ % 26]; } - lfs_file_sync(&lfs, &file[0]) => 0; - lfs_file_tell(&lfs, &file[0]) => $SIZE; - lfs_file_size(&lfs, &file[0]) => $SIZE; + lfs_file_sync(&lfs, &file) => 0; + lfs_file_tell(&lfs, &file) => $SIZE; + lfs_file_size(&lfs, &file) => $SIZE; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST done -echo "--- Results ---" -scripts/stats.py +scripts/results.py diff --git a/tests/test_truncate.sh b/tests/test_truncate.sh index 3810d00..ee42693 100755 --- a/tests/test_truncate.sh +++ b/tests/test_truncate.sh @@ -1,11 +1,14 @@ #!/bin/bash set -eu +export TEST_FILE=$0 +trap 'export TEST_LINE=$LINENO' DEBUG + +echo "=== Truncate tests ===" SMALLSIZE=32 MEDIUMSIZE=2048 LARGESIZE=8192 -echo "=== Truncate tests ===" rm -rf blocks scripts/test.py << TEST lfs_format(&lfs, &cfg) => 0; @@ -14,143 +17,143 @@ TEST echo "--- Simple truncate ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldynoop", + lfs_file_open(&lfs, &file, "baldynoop", LFS_O_WRONLY | LFS_O_CREAT) => 0; strcpy((char*)buffer, "hair"); - size = strlen((char*)buffer); + lfs_size_t size = strlen((char*)buffer); for (lfs_off_t j = 0; j < $LARGESIZE; j += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_size(&lfs, &file[0]) => $LARGESIZE; + lfs_file_size(&lfs, &file) => $LARGESIZE; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldynoop", LFS_O_RDWR) => 0; - lfs_file_size(&lfs, &file[0]) => $LARGESIZE; + lfs_file_open(&lfs, &file, "baldynoop", LFS_O_RDWR) => 0; + lfs_file_size(&lfs, &file) => $LARGESIZE; - lfs_file_truncate(&lfs, &file[0], $MEDIUMSIZE) => 0; - lfs_file_size(&lfs, &file[0]) => $MEDIUMSIZE; + lfs_file_truncate(&lfs, &file, $MEDIUMSIZE) => 0; + lfs_file_size(&lfs, &file) => $MEDIUMSIZE; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldynoop", LFS_O_RDONLY) => 0; - lfs_file_size(&lfs, &file[0]) => $MEDIUMSIZE; + lfs_file_open(&lfs, &file, "baldynoop", LFS_O_RDONLY) => 0; + lfs_file_size(&lfs, &file) => $MEDIUMSIZE; - size = strlen("hair"); + lfs_size_t size = strlen("hair"); for (lfs_off_t j = 0; j < $MEDIUMSIZE; j += size) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "hair", size) => 0; } - lfs_file_read(&lfs, &file[0], buffer, size) => 0; + lfs_file_read(&lfs, &file, buffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Truncate and read ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldyread", + lfs_file_open(&lfs, &file, "baldyread", LFS_O_WRONLY | LFS_O_CREAT) => 0; strcpy((char*)buffer, "hair"); - size = strlen((char*)buffer); + lfs_size_t size = strlen((char*)buffer); for (lfs_off_t j = 0; j < $LARGESIZE; j += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_size(&lfs, &file[0]) => $LARGESIZE; + lfs_file_size(&lfs, &file) => $LARGESIZE; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldyread", LFS_O_RDWR) => 0; - lfs_file_size(&lfs, &file[0]) => $LARGESIZE; + lfs_file_open(&lfs, &file, "baldyread", LFS_O_RDWR) => 0; + lfs_file_size(&lfs, &file) => $LARGESIZE; - lfs_file_truncate(&lfs, &file[0], $MEDIUMSIZE) => 0; - lfs_file_size(&lfs, &file[0]) => $MEDIUMSIZE; + lfs_file_truncate(&lfs, &file, $MEDIUMSIZE) => 0; + lfs_file_size(&lfs, &file) => $MEDIUMSIZE; - size = strlen("hair"); + lfs_size_t size = strlen("hair"); for (lfs_off_t j = 0; j < $MEDIUMSIZE; j += size) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "hair", size) => 0; } - lfs_file_read(&lfs, &file[0], buffer, size) => 0; + lfs_file_read(&lfs, &file, buffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldyread", LFS_O_RDONLY) => 0; - lfs_file_size(&lfs, &file[0]) => $MEDIUMSIZE; + lfs_file_open(&lfs, &file, "baldyread", LFS_O_RDONLY) => 0; + lfs_file_size(&lfs, &file) => $MEDIUMSIZE; - size = strlen("hair"); + lfs_size_t size = strlen("hair"); for (lfs_off_t j = 0; j < $MEDIUMSIZE; j += size) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "hair", size) => 0; } - lfs_file_read(&lfs, &file[0], buffer, size) => 0; + lfs_file_read(&lfs, &file, buffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST echo "--- Truncate and write ---" scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldywrite", + lfs_file_open(&lfs, &file, "baldywrite", LFS_O_WRONLY | LFS_O_CREAT) => 0; strcpy((char*)buffer, "hair"); - size = strlen((char*)buffer); + lfs_size_t size = strlen((char*)buffer); for (lfs_off_t j = 0; j < $LARGESIZE; j += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_size(&lfs, &file[0]) => $LARGESIZE; + lfs_file_size(&lfs, &file) => $LARGESIZE; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldywrite", LFS_O_RDWR) => 0; - lfs_file_size(&lfs, &file[0]) => $LARGESIZE; + lfs_file_open(&lfs, &file, "baldywrite", LFS_O_RDWR) => 0; + lfs_file_size(&lfs, &file) => $LARGESIZE; - lfs_file_truncate(&lfs, &file[0], $MEDIUMSIZE) => 0; - lfs_file_size(&lfs, &file[0]) => $MEDIUMSIZE; + lfs_file_truncate(&lfs, &file, $MEDIUMSIZE) => 0; + lfs_file_size(&lfs, &file) => $MEDIUMSIZE; strcpy((char*)buffer, "bald"); - size = strlen((char*)buffer); + lfs_size_t size = strlen((char*)buffer); for (lfs_off_t j = 0; j < $MEDIUMSIZE; j += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_size(&lfs, &file[0]) => $MEDIUMSIZE; + lfs_file_size(&lfs, &file) => $MEDIUMSIZE; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; - lfs_file_open(&lfs, &file[0], "baldywrite", LFS_O_RDONLY) => 0; - lfs_file_size(&lfs, &file[0]) => $MEDIUMSIZE; + lfs_file_open(&lfs, &file, "baldywrite", LFS_O_RDONLY) => 0; + lfs_file_size(&lfs, &file) => $MEDIUMSIZE; - size = strlen("bald"); + lfs_size_t size = strlen("bald"); for (lfs_off_t j = 0; j < $MEDIUMSIZE; j += size) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "bald", size) => 0; } - lfs_file_read(&lfs, &file[0], buffer, size) => 0; + lfs_file_read(&lfs, &file, buffer, size) => 0; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_unmount(&lfs) => 0; TEST @@ -168,26 +171,26 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; for (unsigned i = 0; i < sizeof(startsizes)/sizeof(startsizes[0]); i++) { - sprintf((char*)buffer, "hairyhead%d", i); - lfs_file_open(&lfs, &file[0], (const char*)buffer, + sprintf(path, "hairyhead%d", i); + lfs_file_open(&lfs, &file, path, LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0; strcpy((char*)buffer, "hair"); - size = strlen((char*)buffer); + lfs_size_t size = strlen((char*)buffer); for (lfs_off_t j = 0; j < startsizes[i]; j += size) { - lfs_file_write(&lfs, &file[0], buffer, size) => size; + lfs_file_write(&lfs, &file, buffer, size) => size; } - lfs_file_size(&lfs, &file[0]) => startsizes[i]; + lfs_file_size(&lfs, &file) => startsizes[i]; if (startseeks[i] != startsizes[i]) { - lfs_file_seek(&lfs, &file[0], + lfs_file_seek(&lfs, &file, startseeks[i], LFS_SEEK_SET) => startseeks[i]; } - lfs_file_truncate(&lfs, &file[0], hotsizes[i]) => 0; - lfs_file_size(&lfs, &file[0]) => hotsizes[i]; + lfs_file_truncate(&lfs, &file, hotsizes[i]) => 0; + lfs_file_size(&lfs, &file) => hotsizes[i]; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; } lfs_unmount(&lfs) => 0; @@ -200,26 +203,26 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; for (unsigned i = 0; i < sizeof(startsizes)/sizeof(startsizes[0]); i++) { - sprintf((char*)buffer, "hairyhead%d", i); - lfs_file_open(&lfs, &file[0], (const char*)buffer, LFS_O_RDWR) => 0; - lfs_file_size(&lfs, &file[0]) => hotsizes[i]; + sprintf(path, "hairyhead%d", i); + lfs_file_open(&lfs, &file, path, LFS_O_RDWR) => 0; + lfs_file_size(&lfs, &file) => hotsizes[i]; - size = strlen("hair"); + lfs_size_t size = strlen("hair"); lfs_off_t j = 0; for (; j < startsizes[i] && j < hotsizes[i]; j += size) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "hair", size) => 0; } for (; j < hotsizes[i]; j += size) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "\0\0\0\0", size) => 0; } - lfs_file_truncate(&lfs, &file[0], coldsizes[i]) => 0; - lfs_file_size(&lfs, &file[0]) => coldsizes[i]; + lfs_file_truncate(&lfs, &file, coldsizes[i]) => 0; + lfs_file_size(&lfs, &file) => coldsizes[i]; - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; } lfs_unmount(&lfs) => 0; @@ -232,24 +235,24 @@ scripts/test.py << TEST lfs_mount(&lfs, &cfg) => 0; for (unsigned i = 0; i < sizeof(startsizes)/sizeof(startsizes[0]); i++) { - sprintf((char*)buffer, "hairyhead%d", i); - lfs_file_open(&lfs, &file[0], (const char*)buffer, LFS_O_RDONLY) => 0; - lfs_file_size(&lfs, &file[0]) => coldsizes[i]; + sprintf(path, "hairyhead%d", i); + lfs_file_open(&lfs, &file, path, LFS_O_RDONLY) => 0; + lfs_file_size(&lfs, &file) => coldsizes[i]; - size = strlen("hair"); + lfs_size_t size = strlen("hair"); lfs_off_t j = 0; for (; j < startsizes[i] && j < hotsizes[i] && j < coldsizes[i]; j += size) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "hair", size) => 0; } for (; j < coldsizes[i]; j += size) { - lfs_file_read(&lfs, &file[0], buffer, size) => size; + lfs_file_read(&lfs, &file, buffer, size) => size; memcmp(buffer, "\0\0\0\0", size) => 0; } - lfs_file_close(&lfs, &file[0]) => 0; + lfs_file_close(&lfs, &file) => 0; } lfs_unmount(&lfs) => 0; @@ -298,5 +301,4 @@ truncate_test \ "2*$LARGESIZE, 2*$LARGESIZE, 2*$LARGESIZE, 2*$LARGESIZE, 2*$LARGESIZE" \ "2*$LARGESIZE, 2*$LARGESIZE, 2*$LARGESIZE, 2*$LARGESIZE, 2*$LARGESIZE" -echo "--- Results ---" -scripts/stats.py +scripts/results.py |