File: gen_tester.sh

package info (click to toggle)
db5.3 5.3.28%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 158,500 kB
  • sloc: ansic: 448,411; java: 111,824; tcl: 80,544; sh: 44,264; cs: 33,697; cpp: 21,604; perl: 14,557; xml: 10,799; makefile: 4,077; javascript: 1,998; yacc: 1,003; awk: 965; sql: 801; erlang: 342; python: 216; php: 24; asm: 14
file content (94 lines) | stat: -rw-r--r-- 2,118 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/env bash

# Auto generate single AllTests file for CuTest.
# Searches through all *.c files in the current directory.
# Prints to stdout.
# Author: Asim Jalis
# Date: 01/08/2003

# Edited 2010 Alex G to match DB tree layout.

if test $# -eq 0 ; then FILES=../suites/*.c ; else FILES=$* ; fi


echo '

/* This is auto-generated code. Edit at your own peril. */
#include <stdio.h>
#include <stdlib.h>

#include "CuTest.h"
'

NEXT_STRING=`grep -h "int Test" ${FILES} | sed -e 's/ {/;/' -e 's/^/extern /'` 
echo "$NEXT_STRING
"

# Want to turn TestEnvConfig.c into:
# Function name RunEnvConfigTests
# Suite name TestEnvConfig
for f in `ls ${FILES}`; do
	SUITE_NAME=`basename $f .c`
	RUNNER_NAME=`echo $SUITE_NAME | sed -e 's/Test\(.*\)/Run\1Tests/'`
	TEST_STR=`grep "${SUITE_NAME}SuiteSetup" $f`
	if [ "$TEST_STR"x != "x" ]; then
		SETUP_FN=${SUITE_NAME}SuiteSetup
	else
		SETUP_FN="NULL"
	fi
	TEST_STR=`grep "${SUITE_NAME}SuiteTeardown" $f`
	if [ "$TEST_STR"x != "x" ]; then
		TEARDOWN_FN=${SUITE_NAME}SuiteTeardown
	else
		TEARDOWN_FN="NULL"
	fi
	echo \
"int $RUNNER_NAME(CuString *output)
{
	CuSuite *suite = CuSuiteNew(\"$SUITE_NAME\",
	    $SETUP_FN, $TEARDOWN_FN);
	int count;
"

	TEST_STR=`grep "${SUITE_NAME}TestSetup" $f`
	if [ "$TEST_STR"x != "x" ]; then
		SETUP_FN=${SUITE_NAME}TestSetup
	else
		SETUP_FN="NULL"
	fi
	TEST_STR=`grep "${SUITE_NAME}TestTeardown" $f`
	if [ "$TEST_STR"x != "x" ]; then
		TEARDOWN_FN=${SUITE_NAME}TestTeardown
	else
		TEARDOWN_FN="NULL"
	fi
	NEXT_STRING=`grep -h "int Test" $f | sed -e '/[Suite|Test]Setup/d' -e '/[Suite|Test]Teardown/d' -e 's/^int /\tSUITE_ADD_TEST(suite, /' -e "s/(CuTest \*ct) {/,\n\t    $SETUP_FN, $TEARDOWN_FN);/"`
	echo \
"$NEXT_STRING
"

	echo \
'	CuSuiteRun(suite);
	CuSuiteSummary(suite, output);
	CuSuiteDetails(suite, output);
	count = suite->failCount;
	CuSuiteDelete(suite);
	return (count);
}
'
done

echo \
'TestSuite g_suites[] = {'

for f in `ls ${FILES}`; do
	SUITE_NAME=`basename $f .c`
	RUNNER_NAME=`echo $SUITE_NAME | sed -e 's/Test\(.*\)/Run\1Tests/'`
	echo \
"	{ \"$SUITE_NAME\", $RUNNER_NAME },"
done
echo \
'	{ "", NULL },
};
'