From 21b727fd491be6f9953f1675b18385296cab0955 Mon Sep 17 00:00:00 2001 From: glyn Date: Fri, 25 Sep 2015 15:18:45 +0100 Subject: [PATCH] Add missing new files --- src/c/gnuregex.c | 464 ++++++++++++++++++++ src/c/gnuregex.h | 18 + src/c/memman.c | 66 +++ src/c/memman.h | 19 + src/depends/mingw-libgnurx-2.5.1-src.tar.gz | Bin 0 -> 125941 bytes src/df32/df32func.h | 30 ++ src/df32/regex.inc | 165 +++++++ src/df32/tap.inc | 304 +++++++++++++ 8 files changed, 1066 insertions(+) create mode 100644 src/c/gnuregex.c create mode 100644 src/c/gnuregex.h create mode 100644 src/c/memman.c create mode 100644 src/c/memman.h create mode 100644 src/depends/mingw-libgnurx-2.5.1-src.tar.gz create mode 100644 src/df32/df32func.h create mode 100644 src/df32/regex.inc create mode 100644 src/df32/tap.inc diff --git a/src/c/gnuregex.c b/src/c/gnuregex.c new file mode 100644 index 0000000..f0f2dea --- /dev/null +++ b/src/c/gnuregex.c @@ -0,0 +1,464 @@ +/*------------------------------------------------------------------------- + * gnuregex.c + * posix regex extensions + * + * Copyright (c) 2007-2015, glyn@8kb.co.uk + * Author: Glyn Astill + * + *------------------------------------------------------------------------- + */ + +#include +#include +#include +#include +#include "memman.h" + +#define MAX_ERROR_MSG 0x1000 + +/* + * Return a properly escaped / quoted string + */ +static char * quote_output(char *str) { + char *result; + char *result_return; + int len; + int do_quote = 0; + char *ptr; + + len = strlen(str); + + /* Check for characters that need quoting */ + for (ptr = str; *ptr; ptr++) { + char ch = *ptr; + if (ch == '\"' || ch =='\\' || ch == '\{' || ch == ',') { + do_quote = 1; + break; + } + } + + /* If we find no characters that need quoting just return the input */ + if (do_quote != 1) + return str; + + /* Do the quoting, here the allocation is wasteful */ + result = (char *) wmalloc((len * 2 + 3) * sizeof(char)); + result_return = result; + + /* + * Starting address of result is incremented as we modify it's contents here + * with result_return keeping the starting address + */ + *result++ = '"'; + while (len-- > 0) { + /* Escape double quotes and backslash with backslash */ + if (*str == '"') { + *result++ = '\\'; + } + if (*str == '\\') { + *result++ = '\\'; + } + *result++ = *str++; + } + *result++ = '"'; + *result++ = '\0'; + + return result_return; +} + +/* + * Count open parenthesis to evaluate the number of subexpressions in the regex + */ +static int count_subexpressions(const char *str){ + int result = 0; + int last_was_backslash = 0; + const char *ptr; + + for(ptr=str; *ptr; ptr++){ + if (*ptr == '\\' && !last_was_backslash){ + last_was_backslash = 1; + continue; + } + if (*ptr == ')' && !last_was_backslash) + result++; + last_was_backslash = 0; + } + return result; +} + +/* + * Check to see if string contains any escape chars + * these could of course just be escaped backslashes + * themselvs. + */ +static int has_escapes(const char *str){ + const char *ptr; + + for(ptr=str; *ptr; ptr++){ + if (*ptr == '\\') + return 1; + } + return 0; +} + +/* + * Compile the regex pattern + */ +static int compile_regex(regex_t *re, const char *pattern, const char *flags, int errors) +{ + int status; + int cflags = REG_EXTENDED; + + if (strchr(flags, 'i')) { + cflags = cflags|REG_ICASE; + } + if (strchr(flags, 'n')) { + cflags = cflags|REG_NEWLINE; + } + + status = regcomp(re, pattern, cflags); + if (status != REG_NOERROR) { + if (errors == 1) { + char error_message[MAX_ERROR_MSG]; + regerror (status, re, error_message, MAX_ERROR_MSG); + fprintf (stderr, "Regex error compiling '%s': %s\n", pattern, error_message); + } + } + return status; +} + +/* + * Returns a pointer to a malloced array of regmatch_t containing match offsets + * in the input string. (As opposed to offests from each match) + * + * The regmatch struct info: + * regmatch_t.rm_so (regoff_t) = byte offset from start of string to start of substring + * regmatch_t.rm_eo (regoff_t) = byte offset from start of string to first character after the end of substring + */ +static int find_regex_matches(regex_t *re, const char *str, const int nsub, const char *flags, regmatch_t **result) +{ + /* Each individual match and it's subexpression matches stored in m */ + regmatch_t m[nsub+1]; + + /* A pointer into the string at the end of the previous match */ + const char *prev_match_eo = str; + + /* + * We return a count of matches and pass back an array of regmatch_t in + * matches containing match offsets in the original string + */ + int array_len = strchr(flags, 'g') ? 256 : 32; + int match_count = 0; + regmatch_t *matches; + + matches = (regmatch_t *) wmalloc(sizeof(regmatch_t) * array_len); + + while (!regexec(re, prev_match_eo, nsub+1, m, 0)) { + int i = 0; + + /* resize the matches array; when more space is required double current size */ + while (match_count + (nsub * 2) > array_len) { + array_len *= 2; + matches = (regmatch_t *) wrealloc(matches, sizeof(regmatch_t) * array_len); + } + + /* when we have subexpressions, we're only interested in their match offsets */ + if (nsub > 0) { + for (i = 1; i <= nsub; i++) { + if (m[i].rm_so < 0 || m[i].rm_eo < 0) { + matches[match_count].rm_so = -1; + matches[match_count++].rm_eo = -1; + } + else { + matches[match_count].rm_so = (prev_match_eo - str) + m[i].rm_so; + matches[match_count++].rm_eo = (prev_match_eo - str) + m[i].rm_eo; + } + } + } + /* else we want the original match offsets*/ + else { + matches[match_count].rm_so = (prev_match_eo - str) + m[0].rm_so; + matches[match_count++].rm_eo = (prev_match_eo - str) + m[0].rm_eo; + } + + /* + * If we have matched on a blank expression or we were + * not flagged to do greedy matching then break + */ + if (!m[0].rm_eo || !strchr(flags, 'g')) + break; + + /* + * Advance the search position to the end of the current match + * If the match happens to be zero length, advance search position + * by one? + */ + if (m[0].rm_eo == m[0].rm_so) + prev_match_eo++; + else + prev_match_eo += m[0].rm_eo; + } + *result = matches; + + return match_count; +} + +/* + * Takes regmatch_t array returned by find_regex_matches and returns a malloced + * string representing the captured substrings. + */ +static char * regex_matches_to_string(const char *str, int nsub, int match_count, regmatch_t *matches) { + int j; + int i; + char *unquoted = NULL; + char *quoted = NULL; + int quoted_len; + char *result; + + int str_len = strlen(str); + int allocated_sz = str_len+1; + result = wmalloc(allocated_sz * sizeof(char)); + int result_sz = 0; + + j = 0; + while (j < match_count) { + + if (j > 0) { + result_sz += 2; + result = reallocate_block(result, &allocated_sz, result_sz * sizeof(char), str_len); + result[result_sz-2] = ','; + result[result_sz-1] = '{'; + } + else { + result_sz++; + result = reallocate_block(result, &allocated_sz, result_sz * sizeof(char), str_len); + result[result_sz-1] = '{'; + } + + for (i = 0; i <= nsub; i++) { + if ((nsub > 0) && (i == 0)) + continue; + + if (i > 1) { + result_sz++; + result = reallocate_block(result, &allocated_sz, result_sz * sizeof(char), str_len); + result[result_sz-1] = ','; + } + + int so = matches[j].rm_so; + int eo = matches[j].rm_eo; + + if (so == -1 || eo == -1) { + result = reallocate_block(result, &allocated_sz, (result_sz+4) * sizeof(char), str_len); + strncpy(result+result_sz, "NULL", 4); + result_sz += 4; + } + else { + unquoted = wmalloc((eo-so)+1 * sizeof(char)); + strncpy(unquoted, str+so, eo-so); + unquoted[eo-so] = '\0'; + quoted = quote_output(unquoted); + quoted_len = strlen(quoted); + + result = reallocate_block(result, &allocated_sz, (result_sz+quoted_len) * sizeof(char), str_len); + strncpy(result+result_sz, quoted, quoted_len); + result_sz += quoted_len; + + if (quoted != unquoted) + wfree(unquoted); + wfree(quoted); + } + j++; + } + + result_sz++; + result = reallocate_block(result, &allocated_sz, result_sz * sizeof(char), str_len); + result[result_sz-1] = '}'; + } + + result_sz++; + result = reallocate_block(result, &allocated_sz, result_sz * sizeof(char), str_len); + result[result_sz-1] = '\0'; + + return result; +} + +/* + * Purely check for a match in the regex + */ +int regexp_match(const char *str, const char *pattern, const char *flags, int errors) +{ + regex_t re; + int result; + int status; + + status = compile_regex(&re, pattern, flags, errors); + if (status == REG_NOERROR) { + result = regexec(&re, str, (size_t) 0, NULL, 0); + regfree(&re); + + if (!result) /* match */ + return 1; + else /* no match */ + return 0; + } + else /* error condition, but still: no match */ + return 0; +} + +/* + * Return all matches in the regex as a string by first calling find_regex_matches + * and then regex_matches_to_string. Arguably this could all be one function + * however separation will make future multiple output formats easier. + */ +char * regexp_matches(const char *str, const char *pattern, const char *flags, int errors) +{ + regex_t re; + regmatch_t *matches_p = NULL; + int nsub; + int match_count; + int status; + char *result = NULL; + + /* Compile the regex */ + status = compile_regex(&re, pattern, flags, errors); + if (status == REG_NOERROR) { + /* Count our subexpressions to size our regmatch_t array */ + nsub = count_subexpressions(pattern); + /* Find all the matches relative to the input string */ + match_count = find_regex_matches(&re, str, nsub, flags, &matches_p); + /* Turn the matches into an output string */ + result = regex_matches_to_string(str, nsub, match_count, matches_p); + /* Free up the regmatch_t malloced by find_regex_matches */ + wfree(matches_p); + regfree(&re); + } + + return result; +} + +/* + * Substitutes matches with the regex pattern in the string with the replacement + * pattern/string. + */ +char * regexp_replace(const char *str, const char *pattern, const char *replacement, const char *flags, int errors) +{ + regex_t re; + int nsub; + char *result = NULL; + char *match_str; + int status; + const char *prev_match_eo = str; + int str_len = strlen(str); + int replacement_len = strlen(replacement); + int allocated_sz = str_len+1; + int result_sz = 0; + + status = compile_regex(&re, pattern, flags, errors); + if (status == REG_NOERROR) { + + result = wmalloc(allocated_sz * sizeof(char)); + + /* Count our subexpressions to size our regmatch_t array */ + nsub = count_subexpressions(pattern); + regmatch_t m[nsub+1]; + + while (!regexec(&re, prev_match_eo, nsub+1, m, 0)) { + + /* Copy everything to the left of the first match */ + if (m[0].rm_so > 0) { + result = reallocate_block(result, &allocated_sz, (result_sz+m[0].rm_so) * sizeof(char), str_len); + strncpy(result+result_sz, prev_match_eo, m[0].rm_so); + result_sz += m[0].rm_so; + } + + /* If there are no backreferences in the replacement, copy in the replacement */ + if (!has_escapes(replacement)) { + result = reallocate_block(result, &allocated_sz, (result_sz+replacement_len) * sizeof(char), str_len); + strncpy(result+result_sz, replacement, replacement_len); + result_sz += replacement_len; + } + /* Otherwise process the backreferences and copy in subcaptures */ + else { + /* find the next escape char */ + const char *start = replacement; + const char *ptr; + + for(ptr = replacement; *ptr; ptr++) { + if (*ptr != '\\') + continue; + + /* append everything to the left of the current escape */ + result = reallocate_block(result, &allocated_sz, (result_sz+(ptr-start)) * sizeof(char), str_len); + strncpy(result+result_sz, start, (ptr-start)); + result_sz += (ptr-start); + + ptr++; + + if ((*ptr >= '1' && *ptr <= '9') || (*ptr == '&')) + { + /* Use the back reference of regexp. */ + int sub; + if (*ptr == '&') + sub = 0; + else + sub = *ptr - '0'; + + if (m[sub].rm_so != -1 && m[sub].rm_eo != -1 && sub <= nsub) { + result = reallocate_block(result, &allocated_sz, (result_sz+(m[sub].rm_eo-m[sub].rm_so)) * sizeof(char), str_len); + strncpy(result+result_sz, prev_match_eo+m[sub].rm_so, (m[sub].rm_eo-m[sub].rm_so)); + result_sz += (m[sub].rm_eo-m[sub].rm_so); + } + ptr++; + } + else if (*ptr == '\\') + { + /* append backsalsh */ + result_sz++; + result = reallocate_block(result, &allocated_sz, result_sz * sizeof(char), str_len); + result[result_sz-1] = '\\'; + ptr++; + } + else { + /* append backsalsh */ + result_sz++; + result = reallocate_block(result, &allocated_sz, result_sz * sizeof(char), str_len); + result[result_sz-1] = '\\'; + } + start = ptr; + } + /* + * Append right trailing replacement, except in the instance + * when it starts with character zero, which can happen when the + * last part of the replace string is escaped. + */ + if (*start) { + result = reallocate_block(result, &allocated_sz, (result_sz+(ptr-start)) * sizeof(char), str_len); + strncpy(result+result_sz, start, (ptr-start)); + result_sz += (ptr-start); + } + + } + prev_match_eo += m[0].rm_eo; + + /* + * If we have matched on a blank expression or we were + * not flagged to do greedy matching then break + */ + if (!m[0].rm_eo || !strchr(flags, 'g')) + break; + } + + /* Copy everything to the right of the last match */ + result = reallocate_block(result, &allocated_sz, (result_sz+(str_len-(prev_match_eo-str))) * sizeof(char), str_len); + strncpy(result+result_sz, prev_match_eo, str_len-(prev_match_eo-str)); + result_sz += str_len-(prev_match_eo-str); + + regfree(&re); + + result_sz++; + result = reallocate_block(result, &allocated_sz, result_sz * sizeof(char), str_len); + result[result_sz-1] = '\0'; + } + return result; +} diff --git a/src/c/gnuregex.h b/src/c/gnuregex.h new file mode 100644 index 0000000..e493712 --- /dev/null +++ b/src/c/gnuregex.h @@ -0,0 +1,18 @@ +/*------------------------------------------------------------------------- + * gnuregex.h + * posix regex extension definitions + * + * Copyright (c) 2007-2015, glyn@8kb.co.uk + * Author: Glyn Astill + * + *-------------------------------------------------------------------------- + */ + +#ifndef __GNUREGEX_H__ +#define __GNUREGEX_H__ + +extern int regexp_match(const char *str, const char *pattern, const char *flags, int errors); +extern char * regexp_matches(const char *str, const char *pattern, const char *flags, int errors); +extern char * regexp_replace(const char *str, const char *pattern, const char *replacement, const char *flags, int errors); + +#endif diff --git a/src/c/memman.c b/src/c/memman.c new file mode 100644 index 0000000..2497fc4 --- /dev/null +++ b/src/c/memman.c @@ -0,0 +1,66 @@ +/*------------------------------------------------------------------------- + * memman.c + * wrappers around malloc/realloc/free + * + * Copyright (c) 2007-2015, glyn@8kb.co.uk + * Author: Glyn Astill + * + *------------------------------------------------------------------------- + */ + + +#include +#include +#include + +/* + * Wrappers around malloc/realloc/free + */ +void * wmalloc(unsigned int size) { + char *result; + + if ((result = malloc(size)) == NULL) { + fprintf(stderr, "Failed to malloc %d bytes\n", size); + exit(1); + } + return result; +} + +void * wrealloc(void *iptr, unsigned int size) { + char *result; + + assert(iptr != NULL); + + if ((result = realloc(iptr, size)) == NULL) { + fprintf(stderr, "Failed to realloc %d bytes\n", size); + exit(1); + } + return result; +} + +void wfree(void *iptr){ + assert(iptr != NULL); + + if (iptr) { + free(iptr); + } + iptr = NULL; +} + +/* + * Reallocate memory block pointed to by iptr in chunks of chunk_size when + * required_size is greater than value pointed to be allocated_size. + * Sets value of allocated_size to current allocation. + */ +void * reallocate_block(void *iptr, int *allocated_size, int required_size, int chunk_size) { + void *result; + + if (*allocated_size >= required_size) + return iptr; + + *allocated_size += (((required_size-*allocated_size)/chunk_size)+1)*chunk_size; + + result = wrealloc(iptr, *allocated_size); + + return result; +} diff --git a/src/c/memman.h b/src/c/memman.h new file mode 100644 index 0000000..dd03cbc --- /dev/null +++ b/src/c/memman.h @@ -0,0 +1,19 @@ +/*------------------------------------------------------------------------- + * memman.h + * definitions for wrappers around malloc/realloc/free + * + * Copyright (c) 2007-2015, glyn@8kb.co.uk + * Author: Glyn Astill + * + *------------------------------------------------------------------------- + */ + +#ifndef __MEMMAN_H__ +#define __MEMMAN_H__ + +extern void * wmalloc(unsigned int size); +extern void * wrealloc(void *iptr, unsigned int size); +extern void wfree(void *iptr); +extern void * reallocate_block(void *iptr, int *allocated_size, int required_size, int chunk_size); + +#endif diff --git a/src/depends/mingw-libgnurx-2.5.1-src.tar.gz b/src/depends/mingw-libgnurx-2.5.1-src.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..620cf36abe7ef7d67bb4a61a6130b3bb7ac5f7cc GIT binary patch literal 125941 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 '\')) increment l_iCount + move l_sChar to l_sLast + loop + + function_return l_iCount +end_function + +// Parse an output string from regexp_matches to get the result at an index +// E.g +// move (regexp_matches_item(myRegexMatchesOutput,muInt)) to myString +function regexp_matches_item global string argv integer argv2 returns string + local integer l_iCount l_i l_iOpen l_iQuot + local string l_sChar l_sLast l_sNext l_sBuf + + move 0 to l_iCount + move 0 to l_iOpen + move 0 to l_iQuot + move "" to l_sLast + for l_i from 0 to (length(argv)) + move (mid(argv,1,l_i)) to l_sChar + move (mid(argv,1,l_i-1)) to l_sLast + + if ((l_sChar = '{') and (l_sLast <> '\')) increment l_iCount + if (l_iCount <> argv2) break begin + + move (mid(argv,1,l_i+1)) to l_sNext + + if ((l_sChar = '{') and not (l_iQuot)) begin + move 1 to l_iOpen + move "" to l_sBuf + end + else if ((l_sChar = '}') and not (l_iQuot)) begin + move 0 to l_iOpen + end + else if ((l_sChar = '"') and (l_sLast <> '\')) begin + if (l_iQuot) move 0 to l_iQuot + else move 1 to l_iQuot + end + if ((l_sChar = ',') and not (l_iOpen)) break begin + if (((l_sChar = '{') or (l_sChar = '}')) and not (l_iQuot)) break begin + if ((l_sChar = '"') and (l_sLast <> '\')) break begin + if ((l_iQuot) and (l_sChar = '\') and ((l_sNext = '"') or (l_sNext = '\'))) break begin + + append l_sBuf l_sChar + loop + + function_return l_sBuf +end_function \ No newline at end of file diff --git a/src/df32/tap.inc b/src/df32/tap.inc new file mode 100644 index 0000000..51eda43 --- /dev/null +++ b/src/df32/tap.inc @@ -0,0 +1,304 @@ +//------------------------------------------------------------------------- +// tap.inc +// This file contains some DataFlex 3.2 Console Mode classes +// to provide some test anything protocol functionality. +// See: http://testanything.org/ +// +// This file is to be included in df32func.mk +// +// Copyright (c) 2006-2015, glyn@8kb.co.uk +// +// df32func/tap.inc +//------------------------------------------------------------------------- + +//------------------------------------------------------------------------- +// Classes +//------------------------------------------------------------------------- + +// TAP class - impliments the vet basic of the Test Anything Protocol +// +// Get methods: +// plan - Gets the "plan" or expected number of tests +// tests - Gets the number of tests executed so far +// +// Set methods: (All of the following methods are intended to be private) +// plan - Sets the "plan" or expected number of tests +// +// Send message methods: +// ok - Fundamental test, to check binary outcome of an expression +// is - Test values are equivaent +// isnt - Test values are not equivaent +// cmp_ok - Test values are not equivaent +// finish - Complete the set of tests (also alias "done_testing") +// +// Notes +// If a plan has been set, and the program aborts without calling finish, finish is called +// automatically, and results will be output. Piping test output to a file or creating a +// "wrapper" around the program with a simple "chain wait" allows test results to always be +// seen. +// +// Example usage: +// +// object myTest is a TAP +// end_object +// +// set plan of myTest to 8 +// +// send ok to myTest (1=1) "One is equal to one" +// send ok to myTest (2=1) "Two is equal to one" +// send ok to myTest (3=3) "Three is equal to three" +// send is to myTest "pie" 100 "Pie is numeric" +// send isnt to myTest "pie" "pie" "Both should be pie" +// send cmp_ok to myTest "pie" "pie" "=" "Pie equals pie" +// send cmp_ok to myTest 1 2 "=" "One equals two" +// send cmp_ok to myTest 1 2 ">" "One is greater than two" +// send cmp_ok to myTest "pankcake" "cake" "~~" "Pankace contains cake" +// +// send finish to myTest +// +class TAP is an array + procedure construct_object integer argc + forward send construct_object + property integer c_iPlan public argc + property integer c_iTest + set c_iPlan to -1 + set c_iTest to 0 + end_procedure + + procedure set plan integer argv + set c_iPlan to argv + end_procedure + + function plan + local integer l_iPlan + get c_iPlan to l_iPlan + function_return l_iPlan + end_procedure + + function tests + local integer l_iTest + get c_iTest to l_iTest + function_return l_iTest + end_procedure + + procedure is string argv string argv2 string argv3 + local integer l_iTest + local string l_sTestResult + + get c_iTest to l_iTest + increment l_iTest + + move (ternary((argv = argv2),"1","0")+string(l_iTest)+" - "+argv3) to l_sTestResult + + forward set array_value item l_iTest to l_sTestResult + set c_iTest to l_iTest + end_procedure + + procedure isnt string argv string argv2 string argv3 + local integer l_iTest + local string l_sTestResult + + get c_iTest to l_iTest + increment l_iTest + + move (ternary((argv <> argv2),"1","0")+string(l_iTest)+" - "+argv3) to l_sTestResult + + forward set array_value item l_iTest to l_sTestResult + set c_iTest to l_iTest + end_procedure + + procedure cmp_ok string argv string argv2 string argv3 string argv4 + local integer l_iTest + local string l_sTestResult + + get c_iTest to l_iTest + increment l_iTest + + case begin + case ((argv3 = "=") or (argv3 = "eq") or (argv3 = "==")) move (ternary((argv = argv2),"1","0")+string(l_iTest)+" - "+argv4) to l_sTestResult + case break + case ((argv3 = "<>") or (argv3 = "ne") or (argv3 = "!=") or (argv3 = "!")) move (ternary((argv <> argv2),"1","0")+string(l_iTest)+" - "+argv4) to l_sTestResult + case break + case ((argv3 = ">") or (argv3 = "gt")) move (ternary((argv > argv2),"1","0")+string(l_iTest)+" - "+argv4) to l_sTestResult + case break + case ((argv3 = ">=") or (argv3 = "ge")) move (ternary((argv >= argv2),"1","0")+string(l_iTest)+" - "+argv4) to l_sTestResult + case break + case ((argv3 = "<") or (argv3 = "lt")) move (ternary((argv < argv2),"1","0")+string(l_iTest)+" - "+argv4) to l_sTestResult + case break + case ((argv3 = "<=") or (argv3 = "le")) move (ternary((argv <= argv2),"1","0")+string(l_iTest)+" - "+argv4) to l_sTestResult + case break + case ((argv3 = "~") or (argv3 = "~~") or (argv3 = "contains")) move (ternary(((argv contains argv2) > 0),"1","0")+string(l_iTest)+" - "+argv4) to l_sTestResult + case break + case else custom_error ERROR_CODE_COMPARISON_OPERATOR$ ERROR_MSG_COMPARISON_OPERATOR argv3 + case end + + forward set array_value item l_iTest to l_sTestResult + set c_iTest to l_iTest + end_procedure + + procedure ok integer argv string argv2 + local integer l_iTest + local string l_sTestResult + + get c_iTest to l_iTest + increment l_iTest + + if ((argv <= 1) and (argv >= 0)) begin + move (string(argv)+string(l_iTest)+" - "+argv2) to l_sTestResult + end + else begin + custom_error ERROR_CODE_INVALID_BOOLEAN$ ERROR_MSG_INVALID_BOOLEAN ERROR_DETAIL_INVALID_BOOLEAN argv + end + + forward set array_value item l_iTest to l_sTestResult + set c_iTest to l_iTest + end_procedure + + procedure finish + local integer l_iPlan l_iTest l_i l_iStatus + local string l_sBuf l_sMsg + + get c_iPlan to l_iPlan + get c_iTest to l_iTest + + + if (l_iPlan <> -1) showln "1.." l_iPlan + for l_i from 1 to l_iTest + forward get string_value item l_i to l_sBuf + move (left(l_sBuf,1)) to l_iStatus + move (right(l_sBuf,length(l_sBuf)-1)) to l_sMsg + + if (l_iStatus = 1) begin + showln "ok " l_sMsg + end + else begin + showln "not ok " l_sMsg + end + loop + + if (l_iPlan <> -1) begin + set c_iPlan to -1 + end + else showln "1.." l_iTest + + forward send delete_data + set c_iTest to 0 + end_procedure + + procedure done_testing + send finish + end_procedure + + procedure destroy_object + local integer l_iPlan + get c_iPlan to l_iPlan + if (l_iPlan <> -1) send finish + //forward send destroy_object + send destroy_object + end_procedure + +end_class + +// TAP_harness class - overrides finish method of TAP class to provide a +// basic harness +// +// Inherits all methods from TAP +// +// Set methods: (extra methods) +// timing_on - Turns on test timing +// timing_off - Turns off test timing +// notices_on - Turns on test notices +// notices_off - Turns off test notices +// +class TAP_harness is a TAP + procedure construct_object integer argc + forward send construct_object argc + property integer c_iNotices + property integer c_iTiming + property integer c_nStart + set c_iNotices to 0 + set c_iTiming to 0 + end_procedure + + function get_timer_seconds returns number + local date l_dDate + local number l_nHr l_nMin l_nSec + + sysdate l_dDate l_nHr l_nMin l_nSec + function_return ((integer(l_dDate)-integer(date("01/01/1970"))*86400)+(((l_nHr*60)+l_nMin)*60)+l_nSec) + end_procedure + + procedure notices_on + set c_iNotices to 1 + end_procedure + + procedure notices_off + set c_iNotices to 0 + end_procedure + + procedure timing_on + local number l_iSecs + set c_iTiming to 1 + get get_timer_seconds to l_iSecs + set c_nStart to l_iSecs + end_procedure + + procedure timing_off + set c_iTiming to 0 + end_procedure + + procedure finish + local integer l_iPlan l_iTest l_i l_iStatus l_iFailed l_iNotices l_iTiming + local string l_sBuf l_sMsg l_sFailed + local number l_nStart l_nSecs + + forward get c_iPlan to l_iPlan + forward get c_iTest to l_iTest + get c_iNotices to l_iNotices + get c_iTiming to l_iTiming + + move 0 to l_iFailed + move "" to l_sFailed + + if (l_iPlan <> -1) showln "1.." l_iPlan + for l_i from 1 to l_iTest + forward get string_value item l_i to l_sBuf + move (left(l_sBuf,1)) to l_iStatus + move (right(l_sBuf,length(l_sBuf)-1)) to l_sMsg + + if (l_iStatus = 1) begin + showln "ok " l_sMsg + end + else begin + showln "not ok " l_sMsg + if (l_iFailed > 0) append l_sFailed ", " + append l_sFailed l_i + increment l_iFailed + end + loop + + if (l_iPlan <> -1) begin + if (l_iNotices) begin + if (l_iTest < l_iPlan); + showln "Notice: Only ran " l_iTest " of " l_iPlan " tests" + if (l_iTest > l_iPlan); + showln "Notice: Ran " l_iTest " tests, but only expected " l_iPlan + end + + if (l_iFailed > 0) begin + showln "FAILED test" (ternary((l_iFailed > 1),"s "," ")) l_sFailed + showln "Failed " l_iFailed "/" l_iTest " tests, " (decround(1-(number(l_iFailed)/number(l_iTest))*100,2)) "% ok" + end + + forward set c_iPlan to -1 + end + else showln "1.." l_iTest + + if (l_iTiming) begin + get get_timer_seconds to l_nSecs + get c_nStart to l_nStart + showln "Timing: " (l_nSecs-l_nStart) " seconds" + end + end_procedure + +end_class -- 2.39.5