aboutsummaryrefslogtreecommitdiffstats
path: root/testcases-case
diff options
context:
space:
mode:
Diffstat (limited to 'testcases-case')
-rw-r--r--testcases-case54
1 files changed, 54 insertions, 0 deletions
diff --git a/testcases-case b/testcases-case
new file mode 100644
index 0000000..6e62412
--- /dev/null
+++ b/testcases-case
@@ -0,0 +1,54 @@
+1:
+$cppawk '
+#include <case.h>
+BEGIN {
+#if defined case_temps && defined case && defined of && \
+ defined matching && defined cbreak && defined otherwise
+ print 1
+#endif
+}'
+:
+1
+--
+2:
+printf "%s\n" foo bar xyzzy x b | $cppawk '
+#include <case.h>
+{
+ case ($0) {
+ of ("foo")
+ print "** foo case: fallthrough!"
+ cfall;
+ of ("bar", "xyzzy") {
+ print "** bar/xyzzy case"
+ cbreak;
+ }
+ matching (/x/)
+ print "** /x/ case"
+ cbreak;
+ otherwise
+ print "** default"
+ cbreak;
+ }
+}'
+:
+** foo case: fallthrough!
+** bar/xyzzy case
+** bar/xyzzy case
+** bar/xyzzy case
+** /x/ case
+** default
+--
+3:
+$cppawk '
+#include <case.h>
+function f(arg, case_temps)
+{
+ case (arg) {
+ of (1, 2, 3) cret(arg * 10)
+ otherwise cret(-arg)
+ }
+}
+
+BEGIN { print f(1), f(2), f(3), f(4) }'
+:
+10 20 30 -4