diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-12-01 00:13:33 -0500 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-12-01 00:13:33 -0500 |
| commit | da240b6dfa844b9e05bc052c3be5626d4b5ab2c6 (patch) | |
| tree | fbce49dbfdc413cac56a33ec8ecba608f29a7933 /tests | |
| parent | f02ba32919962b5268157d490080781611f6146e (diff) | |
| download | nng-da240b6dfa844b9e05bc052c3be5626d4b5ab2c6.tar.gz nng-da240b6dfa844b9e05bc052c3be5626d4b5ab2c6.tar.bz2 nng-da240b6dfa844b9e05bc052c3be5626d4b5ab2c6.zip | |
tests: convert files test to NUTS
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | tests/files.c | 255 |
2 files changed, 0 insertions, 256 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c54b78a9..268b0808 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -124,7 +124,6 @@ else () endmacro(add_nng_test3) endif () -add_nng_test(files 5) add_nng_test1(httpclient 60 NNG_SUPP_HTTP) add_nng_test1(httpserver 30 NNG_SUPP_HTTP) add_nng_test(wss 30) diff --git a/tests/files.c b/tests/files.c deleted file mode 100644 index bf6f704a..00000000 --- a/tests/files.c +++ /dev/null @@ -1,255 +0,0 @@ -// -// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech> -// Copyright 2018 Capitar IT Group BV <info@capitar.com> -// -// This software is supplied under the terms of the MIT License, a -// copy of which should be located in the distribution where this -// file was obtained (LICENSE.txt). A copy of the license may also be -// found online at https://opensource.org/licenses/MIT. -// - -#include "convey.h" -#include "core/nng_impl.h" -#include "stubs.h" - -#include <stdio.h> -#include <string.h> - -#ifdef NNG_PLATFORM_POSIX -#include <sys/stat.h> -#include <unistd.h> -#endif - -void -test_permissions(void) -{ -#ifdef NNG_PLATFORM_POSIX - Convey("Permissions work", { - int rv; - char * temp; - char * file; - void * data; - size_t n; - temp = nni_plat_temp_dir(); - So(temp != NULL); - file = nni_file_join(temp, "nng_files_perms_test"); - if (geteuid() == 0) { - ConveySkip("Cannot test permissions as root"); - } - So(nni_file_put(file, "abc", 4) == 0); - Reset({ - nni_file_delete(file); - nni_strfree(file); - nni_strfree(temp); - }); - chmod(file, 0); - So((rv = nni_file_get(file, &data, &n)) != 0); - So(rv == NNG_EPERM); - So(nni_file_put(file, "def", 4) == NNG_EPERM); - }); -#endif -} - -struct walkarg { - int a; - int b; - int c; - int d; - int seen; -}; - -static int -walker(const char *name, void *arg) -{ - struct walkarg *wa = arg; - const char * bn; - - bn = nni_file_basename(name); - if (wa != NULL) { - wa->seen++; - if (strcmp(bn, "a") == 0) { - wa->a++; - } else if (strcmp(bn, "b") == 0) { - wa->b++; - } else if (strcmp(bn, "c") == 0) { - wa->c++; - } else if (strcmp(bn, "d") == 0) { - wa->d++; - } - } - if (strcmp(bn, "stop") == 0) { - return (NNI_FILE_WALK_STOP); - } - if (strcmp(bn, "prunechild") == 0) { - return (NNI_FILE_WALK_PRUNE_CHILD); - } - if (strcmp(bn, "prunesib") == 0) { - return (NNI_FILE_WALK_PRUNE_SIB); - } - return (NNI_FILE_WALK_CONTINUE); -} - -TestMain("Platform File Support", { - Convey("Directory names work", { - char *d; - - So((d = nni_plat_temp_dir()) != NULL); - nni_strfree(d); - - So((d = nni_file_join("a", "b")) != NULL); - So(d[0] == 'a'); - So(d[2] == 'b'); - So(d[3] == '\0'); - So((d[1] == '/') || (d[1] == '\\')); - nni_strfree(d); - }); - - Convey("Can create file in non-existent directory", { - int rv; - char *tmp; - char *d1; - char *d2; - So((tmp = nni_plat_temp_dir()) != NULL); - So((d1 = nni_file_join(tmp, "bogusdir")) != NULL); - So((d2 = nni_file_join(d1, "a")) != NULL); - So((rv = nni_plat_file_put(d2, "", 0)) == 0); - So(nni_file_delete(d2) == 0); - So(nni_file_delete(d1) == 0); - nni_strfree(d2); - nni_strfree(d1); - nni_strfree(tmp); - }); - Convey("Cannot read missing file", { - int rv; - void * data; - size_t n; - So((rv = nni_file_get("/bogus/dir/a", &data, &n)) != 0); - So(rv == NNG_ENOENT); - }); - - Convey("Delete of missing file passes", - { So(nni_file_delete("/bogus/dir/a") == 0); }); - - Convey("Walk of missing directory fails", { - int rv = nni_file_walk("/bogus/dir/a", walker, NULL, 0); - So(rv == NNG_ENOENT); - }); - - Convey("Remove missing directory works", - { So(nni_file_delete("/bogus/nng_does_not_exist") == 0); }); - - Convey("We can create a pair of files", { - char *temp; - char *mydir; - char *a; - char *b; - char *c; - char *d; - temp = nni_plat_temp_dir(); - So(temp != NULL); - mydir = nni_file_join(temp, "nng_files_test"); - So(mydir != NULL); - a = nni_file_join(mydir, "a"); - So(a != NULL); - b = nni_file_join(mydir, "b"); - So(b != NULL); - c = nni_file_join(mydir, "c"); - So(c != NULL); - d = nni_file_join(c, "d"); - So(d != NULL); - - So(nni_file_put(a, "alpha", 6) == 0); - So(nni_file_put(b, "bravo", 6) == 0); - So(nni_file_put(d, "delta", 6) == 0); - - Reset({ - nni_strfree(temp); - nni_file_delete(a); - nni_file_delete(b); - nni_file_delete(d); - nni_file_delete(c); - nni_file_delete(mydir); - nni_strfree(a); - nni_strfree(b); - nni_strfree(c); - nni_strfree(d); - nni_strfree(mydir); - }); - - Convey("Directory walk works", { - struct walkarg wa; - int rv; - - memset(&wa, 0, sizeof(wa)); - rv = nni_file_walk(mydir, walker, &wa, 0); - So(rv == 0); - So(wa.a == 1); - So(wa.b == 1); - So(wa.c == 1); - So(wa.d == 1); - So(wa.seen == 4); - - memset(&wa, 0, sizeof(wa)); - rv = nni_file_walk( - mydir, walker, &wa, NNI_FILE_WALK_FILES_ONLY); - So(rv == 0); - So(wa.a == 1); - So(wa.b == 1); - So(wa.c == 0); - So(wa.d == 1); - So(wa.seen == 3); - - memset(&wa, 0, sizeof(wa)); - rv = nni_file_walk( - mydir, walker, &wa, NNI_FILE_WALK_SHALLOW); - So(rv == 0); - So(wa.a == 1); - So(wa.b == 1); - So(wa.c == 1); - So(wa.d == 0); - So(wa.seen == 3); - - memset(&wa, 0, sizeof(wa)); - rv = nni_file_walk(mydir, walker, &wa, - NNI_FILE_WALK_SHALLOW | NNI_FILE_WALK_FILES_ONLY); - So(rv == 0); - So(wa.a == 1); - So(wa.b == 1); - So(wa.c == 0); - So(wa.d == 0); - So(wa.seen == 2); - }); - - Convey("Contents work", { - void * data; - size_t len; - - So(nni_file_get(a, &data, &len) == 0); - So(len == 6); - So(strcmp(data, "alpha") == 0); - nni_free(data, len); - }); - }); - - Convey("Zero length files work", { - char * temp; - char * empty; - void * data; - size_t n; - temp = nni_plat_temp_dir(); - So(temp != NULL); - empty = nni_file_join(temp, "nng_files_test1"); - So(empty != NULL); - So(nni_file_put(empty, "", 0) == 0); - Reset({ - nni_file_delete(empty); - nni_strfree(empty); - nni_strfree(temp); - }); - So(nni_file_get(empty, &data, &n) == 0); - nni_free(data, n); - So(n == 0); - }); - - test_permissions(); -}) |
