Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.o
14 changes: 10 additions & 4 deletions CuTest.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,13 +177,13 @@ void CuAssert_Line(CuTest* tc, const char* file, int line, const char* message,
CuFail_Line(tc, file, line, NULL, message);
}

void CuAssertStrEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message,
const char* expected, const char* actual)
void CuAssertStrnEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message,
const char* expected, size_t explen, const char* actual)
{
CuString string;
if ((expected == NULL && actual == NULL) ||
(expected != NULL && actual != NULL &&
strcmp(expected, actual) == 0))
strncmp(expected, actual, explen) == 0))
{
return;
}
Expand All @@ -202,6 +202,12 @@ void CuAssertStrEquals_LineMsg(CuTest* tc, const char* file, int line, const cha
CuFailInternal(tc, file, line, &string);
}

void CuAssertStrEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message,
const char* expected, const char* actual)
{
CuAssertStrnEquals_LineMsg(tc, file, line, message, expected, -1, actual);
}

void CuAssertIntEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message,
int expected, int actual)
{
Expand All @@ -223,7 +229,7 @@ void CuAssertDblEquals_LineMsg(CuTest* tc, const char* file, int line, const cha
}

void CuAssertPtrEquals_LineMsg(CuTest* tc, const char* file, int line, const char* message,
void* expected, void* actual)
const void* expected, const void* actual)
{
char buf[STRING_MAX];
if (expected == actual) return;
Expand Down
26 changes: 17 additions & 9 deletions CuTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include <setjmp.h>
#include <stdarg.h>
#include <stddef.h>

/* CuString */

Expand Down Expand Up @@ -56,6 +57,9 @@ 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);
void CuAssert_Line(CuTest* tc, const char* file, int line, const char* message, int condition);
void CuAssertStrnEquals_LineMsg(CuTest* tc,
const char* file, int line, const char* message,
const char* expected, size_t exlen, const char* actual);
void CuAssertStrEquals_LineMsg(CuTest* tc,
const char* file, int line, const char* message,
const char* expected, const char* actual);
Expand All @@ -67,22 +71,26 @@ void CuAssertDblEquals_LineMsg(CuTest* tc,
double expected, double actual, double delta);
void CuAssertPtrEquals_LineMsg(CuTest* tc,
const char* file, int line, const char* message,
void* expected, void* actual);
const void* expected, const void* actual);

/* public assert functions */

#define CuFail(tc, ms) CuFail_Line( (tc), __FILE__, __LINE__, NULL, (ms))
#define CuAssert(tc, ms, cond) CuAssert_Line((tc), __FILE__, __LINE__, (ms), (cond))
#define CuAssertTrue(tc, cond) CuAssert_Line((tc), __FILE__, __LINE__, "assert failed", (cond))

#define CuAssertStrEquals(tc,ex,ac) CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
#define CuAssertStrEquals_Msg(tc,ms,ex,ac) CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
#define CuAssertIntEquals(tc,ex,ac) CuAssertIntEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
#define CuAssertIntEquals_Msg(tc,ms,ex,ac) CuAssertIntEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
#define CuAssertDblEquals(tc,ex,ac,dl) CuAssertDblEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac),(dl))
#define CuAssertDblEquals_Msg(tc,ms,ex,ac,dl) CuAssertDblEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac),(dl))
#define CuAssertPtrEquals(tc,ex,ac) CuAssertPtrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
#define CuAssertPtrEquals_Msg(tc,ms,ex,ac) CuAssertPtrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
#define CuAssertStrEquals(tc,ex,ac) CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
#define CuAssertStrEquals_Msg(tc,ms,ex,ac) CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
#define CuAssertStrnEquals(tc,ex,exlen,ac) CuAssertStrnEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(exlen),(ac))
#define CuAssertStrnEquals_Msg(tc,ms,ex,exlen,ac) CuAssertStrnEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(exlen),(ac))
#define CuAssertStrEquals(tc,ex,ac) CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
#define CuAssertStrEquals_Msg(tc,ms,ex,ac) CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
#define CuAssertIntEquals(tc,ex,ac) CuAssertIntEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
#define CuAssertIntEquals_Msg(tc,ms,ex,ac) CuAssertIntEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
#define CuAssertDblEquals(tc,ex,ac,dl) CuAssertDblEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac),(dl))
#define CuAssertDblEquals_Msg(tc,ms,ex,ac,dl) CuAssertDblEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac),(dl))
#define CuAssertPtrEquals(tc,ex,ac) CuAssertPtrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
#define CuAssertPtrEquals_Msg(tc,ms,ex,ac) CuAssertPtrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))

#define CuAssertPtrNotNull(tc,p) CuAssert_Line((tc),__FILE__,__LINE__,"null pointer unexpected",(p != NULL))
#define CuAssertPtrNotNullMsg(tc,msg,p) CuAssert_Line((tc),__FILE__,__LINE__,(msg),(p != NULL))
Expand Down
33 changes: 33 additions & 0 deletions CuTestTest.c
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,39 @@ void TestAssertStrEquals_FailStrNULL(CuTest* tc)
CompareAsserts(tc, "CuAssertStrEquals_FailStrNULL failed", expectedMsg, tc2->message);
}

void TestAssertStrnEquals(CuTest *tc)
{
jmp_buf buf;
CuTest *tc2 = CuTestNew("TestAssertStrnEquals", zTestFails);

const char* expected = "expected <hello> but was <world>";
const char *expectedMsg = "some text: expected <hello> but was <world>";

tc2->jumpBuf = &buf;
if (setjmp(buf) == 0)
{
CuAssertStrnEquals(tc2, "hello", 0, "world");
}
CuAssertTrue(tc, !tc2->failed);
if (setjmp(buf) == 0)
{
CuAssertStrnEquals_Msg(tc2, "some text", "hello", 0, "world");
}
CuAssertTrue(tc, !tc2->failed);
if (setjmp(buf) == 0)
{
CuAssertStrnEquals(tc2, "hello", 5, "world");
}
CuAssertTrue(tc, tc2->failed);
CompareAsserts(tc, "CuAssertStrEquals failed", expected, tc2->message);
if (setjmp(buf) == 0)
{
CuAssertStrnEquals_Msg(tc2, "some text", "hello", 5, "world");
}
CuAssertTrue(tc, tc2->failed);
CompareAsserts(tc, "CuAssertStrEquals failed", expectedMsg, tc2->message);
}

void TestAssertIntEquals(CuTest* tc)
{
jmp_buf buf;
Expand Down
11 changes: 7 additions & 4 deletions make-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,19 @@
# Author: Asim Jalis
# Date: 01/08/2003

mydir=`dirname "$0"`

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

echo '
echo "

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

#include "CuTest.h"
#include \"$mydir/CuTest.h\"

'
"

cat $FILES | grep '^void Test' |
sed -e 's/(.*$//' \
Expand All @@ -26,7 +28,7 @@ cat $FILES | grep '^void Test' |
echo \
'

void RunAllTests(void)
void RunAllTests(void)
{
CuString *output = CuStringNew();
CuSuite* suite = CuSuiteNew();
Expand All @@ -51,5 +53,6 @@ echo \
int main(void)
{
RunAllTests();
return 0;
}
'