Remove magic values as exit codes in test application (#777)

This commit is contained in:
CohenArthur
2020-07-11 22:30:43 +02:00
committed by GitHub
parent a3f5b3d98f
commit 58611240e7
5 changed files with 29 additions and 12 deletions

View File

@ -2,6 +2,7 @@
#include <string.h> #include <string.h>
#include "wren.h" #include "wren.h"
#include "../test.h"
int callWrenCallRootRunTests(WrenVM* vm) int callWrenCallRootRunTests(WrenVM* vm)
{ {
@ -17,7 +18,7 @@ int callWrenCallRootRunTests(WrenVM* vm)
WrenInterpretResult result = wrenCall(vm, run); WrenInterpretResult result = wrenCall(vm, run);
if (result == WREN_RESULT_RUNTIME_ERROR) if (result == WREN_RESULT_RUNTIME_ERROR)
{ {
exitCode = 70; exitCode = WREN_EX_SOFTWARE;
} }
else else
{ {

View File

@ -47,8 +47,8 @@ int main(int argc, const char* argv[]) {
exitCode = APITest_Run(vm, testName); exitCode = APITest_Run(vm, testName);
} }
if (result == WREN_RESULT_COMPILE_ERROR) return 65; // EX_DATAERR. if (result == WREN_RESULT_COMPILE_ERROR) return WREN_EX_DATAERR;
if (result == WREN_RESULT_RUNTIME_ERROR) return 70; // EX_SOFTWARE. if (result == WREN_RESULT_RUNTIME_ERROR) return WREN_EX_SOFTWARE;
wrenFreeVM(vm); wrenFreeVM(vm);

View File

@ -320,7 +320,7 @@
if (buffer == NULL) if (buffer == NULL)
{ {
fprintf(stderr, "Could not read file \"%s\".\n", path); fprintf(stderr, "Could not read file \"%s\".\n", path);
exit(74); exit(WREN_EX_IOERR);
} }
// Read the entire file. // Read the entire file.
@ -328,7 +328,7 @@
if (bytesRead < fileSize) if (bytesRead < fileSize)
{ {
fprintf(stderr, "Could not read file \"%s\".\n", path); fprintf(stderr, "Could not read file \"%s\".\n", path);
exit(74); exit(WREN_EX_IOERR);
} }
// Terminate the string. // Terminate the string.
@ -421,7 +421,7 @@
if (source == NULL) if (source == NULL)
{ {
fprintf(stderr, "Could not find file \"%s\".\n", path); fprintf(stderr, "Could not find file \"%s\".\n", path);
exit(66); exit(WREN_EX_NOINPUT);
} }
// If it looks like a relative path, make it explicitly relative so that we // If it looks like a relative path, make it explicitly relative so that we
@ -452,7 +452,7 @@
if (argc < 2) if (argc < 2)
{ {
printf("This is a Wren test runner.\nUsage: wren_test [file]\n"); printf("This is a Wren test runner.\nUsage: wren_test [file]\n");
return 64; // EX_USAGE. return WREN_EX_USAGE;
} }
if (argc == 2 && strcmp(argv[1], "--version") == 0) if (argc == 2 && strcmp(argv[1], "--version") == 0)

View File

@ -6,6 +6,23 @@
#include <string.h> #include <string.h>
#include "wren.h" #include "wren.h"
// Exit codes used by the wren binaries, following the BSD standard
//
// The interpreter was used with an incorrect number of arguments
#define WREN_EX_USAGE 64
// Compilation error
#define WREN_EX_DATAERR 65
// Runtime error
#define WREN_EX_SOFTWARE 70
// Cannot open input file
#define WREN_EX_NOINPUT 66
// I/O Error
#define WREN_EX_IOERR 74
// The maximum number of components in a path. We can't normalize a path that // The maximum number of components in a path. We can't normalize a path that
// contains more than this number of parts. The number here assumes a max path // contains more than this number of parts. The number here assumes a max path
// length of 4096, which is common on Linux, and then assumes each component is // length of 4096, which is common on Linux, and then assumes each component is

View File

@ -53,7 +53,6 @@ num_skipped = 0
skipped = defaultdict(int) skipped = defaultdict(int)
expectations = 0 expectations = 0
class Test: class Test:
def __init__(self, path): def __init__(self, path):
self.path = path self.path = path
@ -99,7 +98,7 @@ class Test:
if match: if match:
self.compile_errors.add(line_num) self.compile_errors.add(line_num)
# If we expect a compile error, it should exit with EX_DATAERR. # If we expect a compile error, it should exit with WREN_EX_DATAERR.
self.exit_code = 65 self.exit_code = 65
expectations += 1 expectations += 1
@ -107,7 +106,7 @@ class Test:
if match: if match:
self.compile_errors.add(int(match.group(1))) self.compile_errors.add(int(match.group(1)))
# If we expect a compile error, it should exit with EX_DATAERR. # If we expect a compile error, it should exit with WREN_EX_DATAERR.
self.exit_code = 65 self.exit_code = 65
expectations += 1 expectations += 1
@ -115,7 +114,7 @@ class Test:
if match: if match:
self.runtime_error_line = line_num self.runtime_error_line = line_num
self.runtime_error_message = match.group(2) self.runtime_error_message = match.group(2)
# If the runtime error isn't handled, it should exit with EX_SOFTWARE. # If the runtime error isn't handled, it should exit with WREN_EX_SOFTWARE.
if match.group(1) != "handled ": if match.group(1) != "handled ":
self.exit_code = 70 self.exit_code = 70
expectations += 1 expectations += 1