summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-01-14 07:17:58 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-01-14 07:17:58 -0800
commitc460f77a1beb27ce8e245a7c13ee6062552f3c9d (patch)
treef9954630505e022d15854b1d774f76fe11b6ac0c
parentbb75fc30d114e304c9afd9277a42196698bde24b (diff)
downloadhalt3-c460f77a1beb27ce8e245a7c13ee6062552f3c9d.tar.gz
halt3-c460f77a1beb27ce8e245a7c13ee6062552f3c9d.tar.bz2
halt3-c460f77a1beb27ce8e245a7c13ee6062552f3c9d.zip
Fix misleading diagnostics in test case program.halt3-1.3
In cases where the decider is wrong, TRUE and FALSE are not both viable answers for a specific test case, but rather for the class of test cases which share the same error_decider.
-rwxr-xr-xgenprog.sh10
1 files changed, 6 insertions, 4 deletions
diff --git a/genprog.sh b/genprog.sh
index 803fe9b..bf941ee 100755
--- a/genprog.sh
+++ b/genprog.sh
@@ -52,6 +52,7 @@ cp $ORIG_HALTING_DECIDER $HALTING_DECIDER
cp $ORIG_ERROR_DECIDER $ERROR_DECIDER
PROGRAM_BASENAME=pg-${HD_HASH}-${ED_HASH}
+PROGRAM_CLASS_BASENAME=pg-"*"-${ED_HASH}
STANDALONE_DECIDER_BASENAME=sa-${HD_HASH}
printf "halting decider: %s\n" $HALTING_DECIDER
@@ -70,6 +71,7 @@ int error_decider(const char *, const char *, const char *);
#define HD_HASH "$HD_HASH"
#define ED_HASH "$ED_HASH"
#define PG_BASE "$PROGRAM_BASENAME"
+#define PG_CLAS "$PROGRAM_CLASS_BASENAME"
#define PG_SELF PG_BASE ".c"
#define HD_NAME "$HALTING_DECIDER"
@@ -96,8 +98,8 @@ int main(int argc, char **argv)
printf("decider %s RIGHT: %s/%s halts\n", HD_NAME, PG_SELF, input);
return EXIT_SUCCESS;
case ERROR:
- printf("decider %s WRONG: TRUE and FALSE are viable answers for %s/%s\n",
- HD_NAME, PG_SELF, input);
+ printf("decider %s WRONG: TRUE and FALSE are viable answers for %s\n",
+ HD_NAME, PG_CLAS);
abort();
}
} else {
@@ -109,8 +111,8 @@ int main(int argc, char **argv)
printf("decider %s WRONG: %s/%s halts\n", HD_NAME, PG_SELF, input);
for(;;);
case ERROR:
- printf("decider %s RIGHT: neither TRUE nor FALSE is correct for %s/%s\n",
- HD_NAME, PG_SELF, input);
+ printf("decider %s WRONG: neither TRUE nor FALSE false is right for %s\n",
+ HD_NAME, PG_CLAS);
abort();
}
}