Added tests for the Variable class

This commit is contained in:
Pierre Pronchery 2012-11-19 00:50:25 +01:00
parent 1f71b021d1
commit 34f155ebdc
5 changed files with 97 additions and 5 deletions

View File

@ -248,6 +248,14 @@ void variable_delete(Variable * variable)
} }
/* variable_get_as */
int variable_get_as(Variable * variable, VariableType type, void * result)
{
/* FIXME implement */
return -1;
}
/* useful */ /* useful */
/* variable_serialize */ /* variable_serialize */
int variable_serialize(Variable * variable, Buffer * buffer, int type) int variable_serialize(Variable * variable, Buffer * buffer, int type)

View File

@ -1,4 +1,4 @@
TARGETS = string tests.log TARGETS = string variable tests.log
PREFIX = /usr/local PREFIX = /usr/local
DESTDIR = DESTDIR =
BINDIR = $(PREFIX)/bin BINDIR = $(PREFIX)/bin
@ -25,14 +25,24 @@ string_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
string: $(string_OBJS) string: $(string_OBJS)
$(CC) -o string $(string_OBJS) $(string_LDFLAGS) $(CC) -o string $(string_OBJS) $(string_LDFLAGS)
tests.log: string variable_OBJS = variable.o
variable_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
variable_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
variable: $(variable_OBJS)
$(CC) -o variable $(variable_OBJS) $(variable_LDFLAGS)
tests.log: string variable
./tests.sh -P "$(PREFIX)" -- "tests.log" ./tests.sh -P "$(PREFIX)" -- "tests.log"
string.o: string.c ../src/string.c string.o: string.c ../src/string.c
$(CC) $(string_CFLAGS) -c string.c $(CC) $(string_CFLAGS) -c string.c
variable.o: variable.c ../src/variable.c
$(CC) $(variable_CFLAGS) -c variable.c
clean: clean:
$(RM) -- $(string_OBJS) $(tests.log_OBJS) $(RM) -- $(string_OBJS) $(variable_OBJS) $(tests.log_OBJS)
distclean: clean distclean: clean
$(RM) -- $(TARGETS) $(RM) -- $(TARGETS)

View File

@ -1,4 +1,4 @@
targets=string,tests.log targets=string,variable,tests.log
cppflags_force=-I ../include cppflags_force=-I ../include
cflags_force=-W cflags_force=-W
cflags=-Wall -g -O2 cflags=-Wall -g -O2
@ -16,4 +16,11 @@ depends=../src/string.c
[tests.log] [tests.log]
type=script type=script
script=./tests.sh script=./tests.sh
depends=string depends=string,variable
[variable]
type=binary
sources=variable.c
[variable.c]
depends=../src/variable.c

View File

@ -46,6 +46,7 @@ target="$1"
> "$target" > "$target"
FAILED= FAILED=
./string >> "$target" || FAILED="$FAILED string" ./string >> "$target" || FAILED="$FAILED string"
./variable >> "$target" || FAILED="$FAILED variable"
[ -z "$FAILED" ] && exit 0 [ -z "$FAILED" ] && exit 0
echo "Failed tests:$FAILED" 1>&2 echo "Failed tests:$FAILED" 1>&2
exit 2 exit 2

66
tests/variable.c Normal file
View File

@ -0,0 +1,66 @@
/* $Id$ */
/* Copyright (c) 2012 Pierre Pronchery <khorben@defora.org> */
/* This file is part of DeforaOS System libSystem */
/* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <stdio.h>
#include "System/variable.h"
/* variable */
static int _variable(char const * progname)
{
int ret = 0;
Variable * variable;
const int samples[] = { 0, -1, 1, -127, -128, 126, 127 };
size_t i;
int32_t j;
int8_t i8;
size_t s;
void * p;
/* variable_new */
for(i = 0; i < sizeof(samples) / sizeof(*samples); i++)
{
printf("%s: Testing variable_new_deserialize_type(): %d\n",
progname, samples[i]);
i8 = samples[i];
s = sizeof(i8);
p = &i8;
if((variable = variable_new_deserialize_type(VT_INT8, &s, p))
== NULL)
{
printf("%s: %d: Test failed\n", progname, samples[i]);
ret += 1;
continue;
}
p = &j;
if(variable_get_as(variable, VT_INT32, p) != 0
|| j != samples[i])
{
printf("%s: %d: Test failed\n", progname, samples[i]);
ret += 1;
}
variable_delete(variable);
}
return ret;
}
/* main */
int main(int argc, char * argv[])
{
return (_variable(argv[0]) == 0) ? 0 : 2;;
}