mirror of
https://github.com/ennorehling/cutest.git
synced 2024-12-21 15:52:20 +00:00
Upgrade to CuTest version 1.5
This commit is contained in:
parent
457823ff5e
commit
c4e7ef9755
38
CuTest.c
38
CuTest.c
@ -19,7 +19,7 @@ char* CuStrAlloc(int size)
|
||||
|
||||
char* CuStrCopy(const char* old)
|
||||
{
|
||||
int len = (int)strlen(old);
|
||||
int len = strlen(old);
|
||||
char* newStr = CuStrAlloc(len + 1);
|
||||
strcpy(newStr, old);
|
||||
return newStr;
|
||||
@ -47,6 +47,13 @@ CuString* CuStringNew(void)
|
||||
return str;
|
||||
}
|
||||
|
||||
void CuStringDelete(CuString *str)
|
||||
{
|
||||
if (!str) return;
|
||||
free(str->buffer);
|
||||
free(str);
|
||||
}
|
||||
|
||||
void CuStringResize(CuString* str, int newSize)
|
||||
{
|
||||
str->buffer = (char*) realloc(str->buffer, sizeof(char) * newSize);
|
||||
@ -61,7 +68,7 @@ void CuStringAppend(CuString* str, const char* text)
|
||||
text = "NULL";
|
||||
}
|
||||
|
||||
length = (int)strlen(text);
|
||||
length = strlen(text);
|
||||
if (str->length + length + 1 >= str->size)
|
||||
CuStringResize(str, str->length + length + 1 + STRING_INC);
|
||||
str->length += length;
|
||||
@ -88,7 +95,7 @@ void CuStringAppendFormat(CuString* str, const char* format, ...)
|
||||
|
||||
void CuStringInsert(CuString* str, const char* text, int pos)
|
||||
{
|
||||
int length = (int)strlen(text);
|
||||
int length = strlen(text);
|
||||
if (pos > str->length)
|
||||
pos = str->length;
|
||||
if (str->length + length + 1 >= str->size)
|
||||
@ -119,6 +126,13 @@ CuTest* CuTestNew(const char* name, TestFunction function)
|
||||
return tc;
|
||||
}
|
||||
|
||||
void CuTestDelete(CuTest *t)
|
||||
{
|
||||
if (!t) return;
|
||||
free(t->name);
|
||||
free(t);
|
||||
}
|
||||
|
||||
void CuTestRun(CuTest* tc)
|
||||
{
|
||||
jmp_buf buf;
|
||||
@ -202,7 +216,8 @@ void CuAssertDblEquals_LineMsg(CuTest* tc, const char* file, int line, const cha
|
||||
{
|
||||
char buf[STRING_MAX];
|
||||
if (fabs(expected - actual) <= delta) return;
|
||||
sprintf(buf, "expected <%f> but was <%f>", expected, actual);
|
||||
sprintf(buf, "expected <%f> but was <%f>", expected, actual);
|
||||
|
||||
CuFail_Line(tc, file, line, message, buf);
|
||||
}
|
||||
|
||||
@ -224,6 +239,7 @@ void CuSuiteInit(CuSuite* testSuite)
|
||||
{
|
||||
testSuite->count = 0;
|
||||
testSuite->failCount = 0;
|
||||
memset(testSuite->list, 0, sizeof(testSuite->list));
|
||||
}
|
||||
|
||||
CuSuite* CuSuiteNew(void)
|
||||
@ -233,6 +249,20 @@ CuSuite* CuSuiteNew(void)
|
||||
return testSuite;
|
||||
}
|
||||
|
||||
void CuSuiteDelete(CuSuite *testSuite)
|
||||
{
|
||||
unsigned int n;
|
||||
for (n=0; n < MAX_TEST_CASES; n++)
|
||||
{
|
||||
if (testSuite->list[n])
|
||||
{
|
||||
CuTestDelete(testSuite->list[n]);
|
||||
}
|
||||
}
|
||||
free(testSuite);
|
||||
|
||||
}
|
||||
|
||||
void CuSuiteAdd(CuSuite* testSuite, CuTest *testCase)
|
||||
{
|
||||
assert(testSuite->count < MAX_TEST_CASES);
|
||||
|
7
CuTest.h
7
CuTest.h
@ -4,6 +4,8 @@
|
||||
#include <setjmp.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#define CUTEST_VERSION "CuTest 1.5"
|
||||
|
||||
/* CuString */
|
||||
|
||||
char* CuStrAlloc(int size);
|
||||
@ -30,6 +32,7 @@ void CuStringAppendChar(CuString* str, char ch);
|
||||
void CuStringAppendFormat(CuString* str, const char* format, ...);
|
||||
void CuStringInsert(CuString* str, const char* text, int pos);
|
||||
void CuStringResize(CuString* str, int newSize);
|
||||
void CuStringDelete(CuString* str);
|
||||
|
||||
/* CuTest */
|
||||
|
||||
@ -39,7 +42,7 @@ typedef void (*TestFunction)(CuTest *);
|
||||
|
||||
struct CuTest
|
||||
{
|
||||
const char* name;
|
||||
char* name;
|
||||
TestFunction function;
|
||||
int failed;
|
||||
int ran;
|
||||
@ -50,6 +53,7 @@ struct CuTest
|
||||
void CuTestInit(CuTest* t, const char* name, TestFunction function);
|
||||
CuTest* CuTestNew(const char* name, TestFunction function);
|
||||
void CuTestRun(CuTest* tc);
|
||||
void CuTestDelete(CuTest *t);
|
||||
|
||||
/* Internal versions of assert functions -- use the public versions */
|
||||
void CuFail_Line(CuTest* tc, const char* file, int line, const char* message2, const char* message);
|
||||
@ -102,6 +106,7 @@ typedef struct
|
||||
|
||||
void CuSuiteInit(CuSuite* testSuite);
|
||||
CuSuite* CuSuiteNew(void);
|
||||
void CuSuiteDelete(CuSuite *testSuite);
|
||||
void CuSuiteAdd(CuSuite* testSuite, CuTest *testCase);
|
||||
void CuSuiteAddSuite(CuSuite* testSuite, CuSuite* testSuite2);
|
||||
void CuSuiteRun(CuSuite* testSuite);
|
||||
|
12
README
12
README
@ -202,8 +202,10 @@ AllTests.c or dealing with any of the other suite code.
|
||||
|
||||
CREDITS
|
||||
|
||||
[02.23.2003] Dave Glowacki <dglo@hyde.ssec.wisc.edu> has added
|
||||
(1) file name and line numbers to the error messages, (2)
|
||||
AssertDblEquals for doubles, (3) Assert<X>Equals_Msg version of
|
||||
all the Assert<X>Equals to pass in optional message which is
|
||||
printed out on assert failure.
|
||||
These people have contributed useful code changes to the CuTest project.
|
||||
Thanks!
|
||||
|
||||
- [02.23.2003] Dave Glowacki <dglo@hyde.ssec.wisc.edu>
|
||||
- [04.17.2009] Tobias Lippert <herrmarder@googlemail.com>
|
||||
- [11.13.2009] Eli Bendersky <eliben@gmail.com>
|
||||
- [12.14.2009] Andrew Brown <abrown@datasci.com>
|
||||
|
106
make-tests.sh
106
make-tests.sh
@ -1,51 +1,55 @@
|
||||
#!/usr/local/bin/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
|
||||
|
||||
if test $# -eq 0 ; then FILES=*.c ; else FILES=$* ; fi
|
||||
|
||||
echo '
|
||||
|
||||
/* This is auto-generated code. Edit at your own peril. */
|
||||
|
||||
#include "CuTest.h"
|
||||
|
||||
'
|
||||
|
||||
cat $FILES | grep '^void Test' |
|
||||
sed -e 's/(.*$//' \
|
||||
-e 's/$/(CuTest*);/' \
|
||||
-e 's/^/extern /'
|
||||
|
||||
echo \
|
||||
'
|
||||
|
||||
void RunAllTests(void)
|
||||
{
|
||||
CuString *output = CuStringNew();
|
||||
CuSuite* suite = CuSuiteNew();
|
||||
|
||||
'
|
||||
cat $FILES | grep '^void Test' |
|
||||
sed -e 's/^void //' \
|
||||
-e 's/(.*$//' \
|
||||
-e 's/^/ SUITE_ADD_TEST(suite, /' \
|
||||
-e 's/$/);/'
|
||||
|
||||
echo \
|
||||
'
|
||||
CuSuiteRun(suite);
|
||||
CuSuiteSummary(suite, output);
|
||||
CuSuiteDetails(suite, output);
|
||||
printf("%s\n", output->buffer);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
RunAllTests();
|
||||
}
|
||||
'
|
||||
#!/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
|
||||
|
||||
if test $# -eq 0 ; then FILES=*.c ; else FILES=$* ; fi
|
||||
|
||||
echo '
|
||||
|
||||
/* This is auto-generated code. Edit at your own peril. */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "CuTest.h"
|
||||
|
||||
'
|
||||
|
||||
cat $FILES | grep '^void Test' |
|
||||
sed -e 's/(.*$//' \
|
||||
-e 's/$/(CuTest*);/' \
|
||||
-e 's/^/extern /'
|
||||
|
||||
echo \
|
||||
'
|
||||
|
||||
void RunAllTests(void)
|
||||
{
|
||||
CuString *output = CuStringNew();
|
||||
CuSuite* suite = CuSuiteNew();
|
||||
|
||||
'
|
||||
cat $FILES | grep '^void Test' |
|
||||
sed -e 's/^void //' \
|
||||
-e 's/(.*$//' \
|
||||
-e 's/^/ SUITE_ADD_TEST(suite, /' \
|
||||
-e 's/$/);/'
|
||||
|
||||
echo \
|
||||
'
|
||||
CuSuiteRun(suite);
|
||||
CuSuiteSummary(suite, output);
|
||||
CuSuiteDetails(suite, output);
|
||||
printf("%s\n", output->buffer);
|
||||
CuStringDelete(output);
|
||||
CuSuiteDelete(suite);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
RunAllTests();
|
||||
}
|
||||
'
|
||||
|
Loading…
Reference in New Issue
Block a user