test_disasm

git-svn: trunk@4009
remotes/push_mirror/0.95
aCaB 18 years ago
parent 7f67d9e364
commit c92b0057f7
  1. 4
      ChangeLog
  2. 1
      libclamav/libclamav.map
  3. 2
      unit_tests/Makefile.am
  4. 20
      unit_tests/Makefile.in
  5. 3
      unit_tests/check_clamav.c
  6. 71
      unit_tests/check_disasm.c
  7. 7
      unit_tests/valgrind.supp

@ -1,3 +1,7 @@
Mon Jul 28 21:04:53 CEST 2008 (acab)
------------------------------------
* unit_tests: preliminary disasm tests
Mon Jul 28 15:05:01 CEST 2008 (acab)
------------------------------------
* libclamav/pe.c: fix fd leak - thx sherpya

@ -102,6 +102,7 @@ CLAMAV_PRIVATE {
blobDestroy;
load_regex_matcher;
html_tag_arg_free;
disasmbuf;
local:
*;
};

@ -9,7 +9,7 @@ else
check_PROGRAMS = $(programs)
check_SCRIPTS = $(scripts)
endif
check_clamav_SOURCES = check_clamav.c check_jsnorm.c check_str.c check_regex.c checks.h $(top_builddir)/libclamav/clamav.h
check_clamav_SOURCES = check_clamav.c check_jsnorm.c check_str.c check_regex.c checks.h $(top_builddir)/libclamav/clamav.h check_disasm.c
check_clamav_CFLAGS = @CHECK_CFLAGS@ -DSRCDIR=\"$(abs_srcdir)\"
check_clamav_LDADD = $(top_builddir)/libclamav/libclamav.la @THREAD_LIBS@ @CHECK_LIBS@

@ -56,7 +56,8 @@ PROGRAMS = $(bin_PROGRAMS)
am_check_clamav_OBJECTS = check_clamav-check_clamav.$(OBJEXT) \
check_clamav-check_jsnorm.$(OBJEXT) \
check_clamav-check_str.$(OBJEXT) \
check_clamav-check_regex.$(OBJEXT)
check_clamav-check_regex.$(OBJEXT) \
check_clamav-check_disasm.$(OBJEXT)
check_clamav_OBJECTS = $(am_check_clamav_OBJECTS)
check_clamav_DEPENDENCIES = $(top_builddir)/libclamav/libclamav.la
check_clamav_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
@ -220,7 +221,7 @@ programs = check_clamav
scripts = check_clamd.sh check_freshclam.sh check_sigtool.sh check_clamscan.sh valgrind_tests.sh
@ENABLE_UT_INSTALL_TRUE@dist_bin_SCRIPTS = $(scripts)
@ENABLE_UT_INSTALL_FALSE@check_SCRIPTS = $(scripts)
check_clamav_SOURCES = check_clamav.c check_jsnorm.c check_str.c check_regex.c checks.h $(top_builddir)/libclamav/clamav.h
check_clamav_SOURCES = check_clamav.c check_jsnorm.c check_str.c check_regex.c checks.h $(top_builddir)/libclamav/clamav.h check_disasm.c
check_clamav_CFLAGS = @CHECK_CFLAGS@ -DSRCDIR=\"$(abs_srcdir)\"
check_clamav_LDADD = $(top_builddir)/libclamav/libclamav.la @THREAD_LIBS@ @CHECK_LIBS@
EXTRA_DIST = test-clamd.conf test-freshclam.conf valgrind.supp inputs/COPYING inputs/daily.pdb inputs/daily.wdb
@ -330,6 +331,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_clamav-check_clamav.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_clamav-check_disasm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_clamav-check_jsnorm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_clamav-check_regex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_clamav-check_str.Po@am__quote@
@ -411,6 +413,20 @@ check_clamav-check_regex.obj: check_regex.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_clamav_CFLAGS) $(CFLAGS) -c -o check_clamav-check_regex.obj `if test -f 'check_regex.c'; then $(CYGPATH_W) 'check_regex.c'; else $(CYGPATH_W) '$(srcdir)/check_regex.c'; fi`
check_clamav-check_disasm.o: check_disasm.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_clamav_CFLAGS) $(CFLAGS) -MT check_clamav-check_disasm.o -MD -MP -MF $(DEPDIR)/check_clamav-check_disasm.Tpo -c -o check_clamav-check_disasm.o `test -f 'check_disasm.c' || echo '$(srcdir)/'`check_disasm.c
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/check_clamav-check_disasm.Tpo $(DEPDIR)/check_clamav-check_disasm.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='check_disasm.c' object='check_clamav-check_disasm.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_clamav_CFLAGS) $(CFLAGS) -c -o check_clamav-check_disasm.o `test -f 'check_disasm.c' || echo '$(srcdir)/'`check_disasm.c
check_clamav-check_disasm.obj: check_disasm.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_clamav_CFLAGS) $(CFLAGS) -MT check_clamav-check_disasm.obj -MD -MP -MF $(DEPDIR)/check_clamav-check_disasm.Tpo -c -o check_clamav-check_disasm.obj `if test -f 'check_disasm.c'; then $(CYGPATH_W) 'check_disasm.c'; else $(CYGPATH_W) '$(srcdir)/check_disasm.c'; fi`
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/check_clamav-check_disasm.Tpo $(DEPDIR)/check_clamav-check_disasm.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='check_disasm.c' object='check_clamav-check_disasm.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_clamav_CFLAGS) $(CFLAGS) -c -o check_clamav-check_disasm.obj `if test -f 'check_disasm.c'; then $(CYGPATH_W) 'check_disasm.c'; else $(CYGPATH_W) '$(srcdir)/check_disasm.c'; fi`
mostlyclean-libtool:
-rm -f *.lo

@ -333,7 +333,8 @@ int main(int argc, char **argv)
srunner_add_suite(sr, test_cli_suite());
srunner_add_suite(sr, test_jsnorm_suite());
srunner_add_suite(sr, test_str_suite());
srunner_add_suite(sr, test_regex_suite());
/* srunner_add_suite(sr, test_regex_suite()); */
srunner_add_suite(sr, test_disasm_suite());
srunner_set_log(sr, "test.log");
freopen("test-stderr.log","w+",stderr);

@ -0,0 +1,71 @@
/*
* Unit tests for JS normalizer.
*
* Copyright (C) 2008 Sourcefire, Inc.
*
* Authors: Török Edvin
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
#if HAVE_CONFIG_H
#include "clamav-config.h"
#endif
#include <stdio.h>
#ifdef HAVE_CHECK
#include <check.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include "../libclamav/clamav.h"
#include "../libclamav/others.h"
#include "../libclamav/disasm.h"
START_TEST (test_disasm_basic) {
char file[]="disasmXXXXXX";
char ref[]="\xc2\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x02\x00\x00";
int fd = mkstemp(file);
uint8_t buf[] = {0x33, 0xc0};
off_t *d;
off_t size;
disasmbuf(buf, 2, fd);
size = lseek(fd, 0, SEEK_CUR);
fail_unless(size==64, "disasm size");
lseek(fd, 0, SEEK_SET);
d=malloc(size);
fail_unless(d, "disasm malloc");
fail_unless(read(fd, d, size)==size, "disasm read");
close(fd);
free(d);
unlink(file);
}
END_TEST
Suite *test_disasm_suite(void)
{
Suite *s = suite_create("disasm");
TCase *tc_disasm;
tc_disasm = tcase_create("disasm");
suite_add_tcase (s, tc_disasm);
tcase_add_test(tc_disasm, test_disasm_basic);
return s;
}
#endif

@ -5,3 +5,10 @@
fun:free_mem
fun:__libc_freeres
}
{
below-main-stuff
Memcheck:Free
fun:free
obj:/lib/libc-2.7.so
fun:__libc_freeres
}

Loading…
Cancel
Save