OILS / cpp / pylib_test.cc View on Github | oilshell.org

52 lines, 31 significant
1#include "cpp/pylib.h"
2
3#include "mycpp/runtime.h"
4#include "vendor/greatest.h"
5
6TEST os_path_test() {
7 // TODO: use gc_mylib here, with NewStr(), StackRoots, etc.
8 BigStr* s = nullptr;
9
10 s = os_path::rstrip_slashes(StrFromC(""));
11 ASSERT(str_equals(s, StrFromC("")));
12
13 s = os_path::rstrip_slashes(StrFromC("foo"));
14 ASSERT(str_equals(s, StrFromC("foo")));
15
16 s = os_path::rstrip_slashes(StrFromC("foo/"));
17 ASSERT(str_equals(s, StrFromC("foo")));
18
19 s = os_path::rstrip_slashes(StrFromC("/foo/"));
20 ASSERT(str_equals(s, StrFromC("/foo")));
21
22 // special case of not stripping
23 s = os_path::rstrip_slashes(StrFromC("///"));
24 ASSERT(str_equals(s, StrFromC("///")));
25
26 ASSERT(path_stat::exists(StrFromC("/")));
27 ASSERT(!path_stat::exists(StrFromC("/nonexistent_ZZZ")));
28
29 PASS();
30}
31
32TEST isdir_test() {
33 ASSERT(path_stat::isdir(StrFromC(".")));
34 ASSERT(path_stat::isdir(StrFromC("/")));
35 PASS();
36}
37
38GREATEST_MAIN_DEFS();
39
40int main(int argc, char** argv) {
41 gHeap.Init();
42
43 GREATEST_MAIN_BEGIN();
44
45 RUN_TEST(os_path_test);
46 RUN_TEST(isdir_test);
47
48 gHeap.CleanProcessExit();
49
50 GREATEST_MAIN_END();
51 return 0;
52}