From 71ad08850af0349365468eff107132af5b7077f3 Mon Sep 17 00:00:00 2001 From: Jacob Bachmeyer Date: Sat, 6 Jun 2020 20:40:40 -0500 Subject: Add "testcase group" API --- testsuite/runtest.libs/testcase_group.test | 61 ++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 testsuite/runtest.libs/testcase_group.test (limited to 'testsuite') diff --git a/testsuite/runtest.libs/testcase_group.test b/testsuite/runtest.libs/testcase_group.test new file mode 100644 index 0000000..e524744 --- /dev/null +++ b/testsuite/runtest.libs/testcase_group.test @@ -0,0 +1,61 @@ +# test "testcase group" API call -*- Tcl -*- + +if [ file exists $srcdir/$subdir/default_procs.tcl ] { + source "$srcdir/$subdir/default_procs.tcl" +} else { + puts "ERROR: $srcdir/$subdir/default_procs.tcl doesn't exist" +} +if [ file exists $srcdir/../lib/framework.exp] { + source $srcdir/../lib/framework.exp +} else { + puts "ERROR: $srcdir/../lib/framework.exp doesn't exist" +} + +# test group handling + +run_tests { + { lib_errpat_test testcase { group bogus-command } + "*unknown*bogus-command*" + "reject bogus group operation" } + { lib_errpat_test testcase { group begin "no spaces in group names" } + "*spaces in group names*is not valid*" + "reject entering group with spaces in name" } + + { lib_ret_test testcase { group } "" + "initially in no group" } + { lib_ret_test testcase { group begin foo } "foo" + "enter group 'foo'" } + { lib_ret_test testcase { group } "foo" + "now in group 'foo'" } + { lib_ret_test testcase { group begin bar } "bar" + "enter group 'bar' (foo/bar)" } + { lib_ret_test testcase { group } "foo/bar" + "now in group 'foo/bar'" } + { lib_errpat_test testcase { group end foo } + "*expected to close group*foo*found group*bar*" + "error on mismatch leaving 'foo' in 'foo/bar'" } + { lib_errpat_test testcase { group end "foo/bar" } + "*expected to close group*foo/bar*found group*bar*" + "error on mismatch leaving 'foo/bar'" } + { lib_ret_test testcase { group end bar } "bar" + "leave group 'bar' (foo)" } + { lib_ret_test testcase { group } "foo" + "back in group 'foo'" } + { lib_ret_test testcase { group begin "baz/bar" } "baz/bar" + "enter group 'baz/bar' (foo/baz/bar)" } + { lib_ret_test testcase { group } "foo/baz/bar" + "now in group 'foo/baz/bar'" } + { lib_ret_test testcase { group eval "quux" {testcase group} } + "foo/baz/bar/quux" + "group 'foo/baz/bar/quux' entered for eval" } + { lib_ret_test testcase { group } "foo/baz/bar" + "still in group 'foo/baz/bar' after eval" } + { lib_ret_test testcase { group end "baz/bar" } "baz/bar" + "leave group 'baz/bar' (foo)" } + { lib_ret_test testcase { group end foo } "foo" + "leave group 'foo'" } + { lib_ret_test testcase { group } "" + "finally in no group" } +} + +puts "END testcase_group.test" -- cgit v1.1