From 511d6fe676056a72f58daa7307267603f42003f3 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sat, 16 Sep 2017 16:41:37 -0400 Subject: tests: Add tests that trigger some optimizations --- tests.sh | 40 +++++++++++++++++++++++++++++++++++++++ tests/test_comma_reachability.out | 1 + tests/test_data_flow_depth.out | 8 ++++++++ tests/test_data_flow_type.out | 0 tests/test_de_morgan_and.out | 10 ++++++++++ tests/test_de_morgan_not.out | 6 ++++++ tests/test_de_morgan_or.out | 18 ++++++++++++++++++ tests/test_double_negation.out | 3 +++ tests/test_not_reachability.out | 1 + 9 files changed, 87 insertions(+) create mode 100644 tests/test_comma_reachability.out create mode 100644 tests/test_data_flow_depth.out create mode 100644 tests/test_data_flow_type.out create mode 100644 tests/test_de_morgan_and.out create mode 100644 tests/test_de_morgan_not.out create mode 100644 tests/test_de_morgan_or.out create mode 100644 tests/test_double_negation.out create mode 100644 tests/test_not_reachability.out diff --git a/tests.sh b/tests.sh index bd94583..983d3b3 100755 --- a/tests.sh +++ b/tests.sh @@ -208,6 +208,12 @@ posix_tests=( test_a test_o test_deep + test_double_negation + test_not_reachability + test_de_morgan_not + test_de_morgan_and + test_de_morgan_or + test_data_flow_type ) bsd_tests=( @@ -270,6 +276,7 @@ bsd_tests=( test_nouser test_exit test_printx + test_data_flow_depth ) gnu_tests=( @@ -367,6 +374,7 @@ gnu_tests=( test_precedence test_and_purity test_or_purity + test_comma_reachability ) bfs_tests=( @@ -1365,6 +1373,38 @@ function test_or_purity() { bfs_diff basic -name '*' -o -print } +function test_double_negation() { + bfs_diff basic \! \! -name 'foo' +} + +function test_not_reachability() { + bfs_diff basic -print \! -quit -print +} + +function test_comma_reachability() { + bfs_diff basic -print -quit , -print +} + +function test_de_morgan_not() { + bfs_diff basic \! \( -name 'foo' -o \! -type f \) +} + +function test_de_morgan_and() { + bfs_diff basic \( \! -name 'foo' -a \! -type f \) +} + +function test_de_morgan_or() { + bfs_diff basic \( \! -name 'foo' -o \! -type f \) +} + +function test_data_flow_depth() { + bfs_diff basic -depth +1 -depth -4 +} + +function test_data_flow_type() { + bfs_diff basic \! \( -type f -o \! -type f \) +} + if [ -t 1 -a ! "$VERBOSE" ]; then in_place=yes fi diff --git a/tests/test_comma_reachability.out b/tests/test_comma_reachability.out new file mode 100644 index 0000000..15a13db --- /dev/null +++ b/tests/test_comma_reachability.out @@ -0,0 +1 @@ +basic diff --git a/tests/test_data_flow_depth.out b/tests/test_data_flow_depth.out new file mode 100644 index 0000000..350b489 --- /dev/null +++ b/tests/test_data_flow_depth.out @@ -0,0 +1,8 @@ +basic/c/d +basic/e/f +basic/g/h +basic/j/foo +basic/k/foo +basic/l/foo +basic/k/foo/bar +basic/l/foo/bar diff --git a/tests/test_data_flow_type.out b/tests/test_data_flow_type.out new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_de_morgan_and.out b/tests/test_de_morgan_and.out new file mode 100644 index 0000000..723790f --- /dev/null +++ b/tests/test_de_morgan_and.out @@ -0,0 +1,10 @@ +basic +basic/c +basic/e +basic/g +basic/i +basic/j +basic/k +basic/l +basic/g/h +basic/l/foo/bar diff --git a/tests/test_de_morgan_not.out b/tests/test_de_morgan_not.out new file mode 100644 index 0000000..5916da3 --- /dev/null +++ b/tests/test_de_morgan_not.out @@ -0,0 +1,6 @@ +basic/a +basic/b +basic/c/d +basic/e/f +basic/k/foo/bar +basic/l/foo/bar/baz diff --git a/tests/test_de_morgan_or.out b/tests/test_de_morgan_or.out new file mode 100644 index 0000000..697f6b8 --- /dev/null +++ b/tests/test_de_morgan_or.out @@ -0,0 +1,18 @@ +basic +basic/a +basic/b +basic/c +basic/e +basic/g +basic/i +basic/j +basic/k +basic/l +basic/c/d +basic/e/f +basic/g/h +basic/k/foo +basic/l/foo +basic/k/foo/bar +basic/l/foo/bar +basic/l/foo/bar/baz diff --git a/tests/test_double_negation.out b/tests/test_double_negation.out new file mode 100644 index 0000000..e9d47b1 --- /dev/null +++ b/tests/test_double_negation.out @@ -0,0 +1,3 @@ +basic/j/foo +basic/k/foo +basic/l/foo diff --git a/tests/test_not_reachability.out b/tests/test_not_reachability.out new file mode 100644 index 0000000..15a13db --- /dev/null +++ b/tests/test_not_reachability.out @@ -0,0 +1 @@ +basic -- cgit v1.2.3