From 95aa82d18205907d4f4d73f43c1d6bf2a82af288 Mon Sep 17 00:00:00 2001
From: NeilBrown <neil@brown.name>
Date: Sat, 18 Dec 2021 21:07:54 +1100
Subject: [PATCH] oceani: handle some more untested code.

The mark-untested filter was removing some annotations that are valid...

I'm not sure of this 'switch' syntax ... need to think about that one day.

Signed-off-by: NeilBrown <neil@brown.name>
---
 csrc/oceani-tests.mdc | 11 +++++------
 csrc/oceani.mdc       |  8 ++++----
 tools/mark-untested   |  2 +-
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/csrc/oceani-tests.mdc b/csrc/oceani-tests.mdc
index 45240a2..4e9f4e3 100644
--- a/csrc/oceani-tests.mdc
+++ b/csrc/oceani-tests.mdc
@@ -221,12 +221,11 @@ Test merging of variables from multiple cases
 		print
 
 		for i:=0; then i=i+1; while i < 5:
-			switch i:
-				case 0: num:="zero"
-				case 1: num:="one"
-				case 2: num:="two"
-				case 3: num:="three"
-				else    num:="many"
+			switch { use i }
+				case 0: num:="zero" ;
+				case 1: num:="one" ;
+				case 2 { num:="two" } case 3 { num:="three" }
+				else  num:="many"
 			// re-declare a CondScope variable
 			num := i*i
 			print num,", ",
diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc
index ca59924..ad0d1b5 100644
--- a/csrc/oceani.mdc
+++ b/csrc/oceani.mdc
@@ -4576,7 +4576,7 @@ the common header for all reductions to use.
 
 	ComplexStatements -> ComplexStatements ComplexStatement ${
 		if ($2 == NULL) {
-			$0 = $<1;
+			$0 = $<1;	// NOTEST - impossible
 		} else {
 			$0 = new(binode);
 			$0->op = Block;
@@ -4586,7 +4586,7 @@ the common header for all reductions to use.
 	}$
 	| ComplexStatement ${
 		if ($1 == NULL) {
-			$0 = NULL;
+			$0 = NULL;	// NOTEST - impossible
 		} else {
 			$0 = new(binode);
 			$0->op = Block;
@@ -5784,7 +5784,7 @@ is a bit more interesting at this level.
 		$0 = declare_function(c, $<FN, $<Ar, $<Ty, NULL, $<Bl);
 	}$
 	| func FuncName ( OpenScope ArgsLine ) : ( ArgsLine ) Block Newlines ${
-		$0 = declare_function(c, $<FN, $<AL, NULL, $<AL2, $<Bl);
+		$0 = declare_function(c, $<FN, $<AL, NULL, $<AL2, $<Bl);	// UNTESTED
 	}$
 	| func FuncName IN OpenScope Args OUT OptNL return Type Newlines do Block Newlines ${
 		$0 = declare_function(c, $<FN, $<Ar, $<Ty, NULL, $<Bl);
@@ -5796,7 +5796,7 @@ is a bit more interesting at this level.
 		$0 = declare_function(c, $<FN, $<Ar, NULL, $<Ar2, $<Bl);
 	}$
 	| func FuncName NEWLINE OpenScope return IN Args OUT OptNL do Block Newlines ${
-		$0 = declare_function(c, $<FN, NULL, NULL, $<Ar, $<Bl);
+		$0 = declare_function(c, $<FN, NULL, NULL, $<Ar, $<Bl);	// UNTESTED
 	}$
 
 ###### print func decls
diff --git a/tools/mark-untested b/tools/mark-untested
index 96aeb2c..83b7b5f 100755
--- a/tools/mark-untested
+++ b/tools/mark-untested
@@ -17,7 +17,7 @@ case $1 in
 	 if [ ! -f "$b" ]; then 
 	    continue
 	 fi
-	 grep '#####:' "$i" | grep -vE '(NOTEST|UNTESTED|:	*##|}\$$|:$|:[	]*(\||\$))' |
+	 grep '#####:' "$i" | grep -vE '(NOTEST|UNTESTED|:	*##|}\$$|:$)' |
 	     awk -F: '{printf "%ds,$,	// UNTESTED,\n", $2}' |
 	     sed -i -e 's,[	 ]*// UNTESTED$,,' -f - "$b"
          grep '[0-8]: *[1-9][0-9]*:.*// NOTEST$' "$i" |
-- 
2.43.0