[brlcad-commits] SF.net SVN: brlcad:[46481] brlcad/trunk/src/libbu
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <br...@us...> - 2011-08-30 17:54:49
|
Revision: 46481 http://brlcad.svn.sourceforge.net/brlcad/?rev=46481&view=rev Author: brlcad Date: 2011-08-30 17:54:43 +0000 (Tue, 30 Aug 2011) Log Message: ----------- add a preliminary vls unit test to make sure our printing format specifier behavior is consistent with stdio's behavior. particularly for non-standard format specifier issues like %z and %ll, make sure something sane is happening. Modified Paths: -------------- brlcad/trunk/src/libbu/CMakeLists.txt brlcad/trunk/src/libbu/Makefile.am Added Paths: ----------- brlcad/trunk/src/libbu/test_vls.c Modified: brlcad/trunk/src/libbu/CMakeLists.txt =================================================================== --- brlcad/trunk/src/libbu/CMakeLists.txt 2011-08-30 17:05:56 UTC (rev 46480) +++ brlcad/trunk/src/libbu/CMakeLists.txt 2011-08-30 17:54:43 UTC (rev 46481) @@ -96,15 +96,18 @@ add_executable(test_timer test_timer.c) target_link_libraries(test_timer libbu) -add_executable(test_basename test_basename.c) +add_executable(test_basename test_basename.c) target_link_libraries(test_basename libbu) IF(MSVC) SET_TARGET_PROPERTIES(test_basename PROPERTIES COMPILE_FLAGS "-DBRLCAD_DLL") ENDIF(MSVC) -add_executable(test_progname test_progname.c) +add_executable(test_progname test_progname.c) target_link_libraries(test_progname libbu) +add_executable(test_vls test_vls.c) +target_link_libraries(test_vls libbu) + set(bu_MAN3 htond.3 libbu.3 Modified: brlcad/trunk/src/libbu/Makefile.am =================================================================== --- brlcad/trunk/src/libbu/Makefile.am 2011-08-30 17:05:56 UTC (rev 46480) +++ brlcad/trunk/src/libbu/Makefile.am 2011-08-30 17:54:43 UTC (rev 46481) @@ -2,7 +2,12 @@ lib_LTLIBRARIES = libbu.la noinst_LTLIBRARIES = libbu_nil.la -noinst_PROGRAMS = test_htond test_timer test_basename test_progname +noinst_PROGRAMS = \ + test_basename \ + test_htond \ + test_progname \ + test_timer \ + test_vls libbu_nil_la_SOURCES = \ argv.c \ @@ -108,6 +113,11 @@ libbu.la \ ${BU_LIBS} +test_vls_SOURCES = test_vls.c +test_vls_LDADD = \ + libbu.la \ + ${BU_LIBS} + noinst_HEADERS = \ rb_internals.h Added: brlcad/trunk/src/libbu/test_vls.c =================================================================== --- brlcad/trunk/src/libbu/test_vls.c (rev 0) +++ brlcad/trunk/src/libbu/test_vls.c 2011-08-30 17:54:43 UTC (rev 46481) @@ -0,0 +1,79 @@ +/* T E S T _ V L S . C + * BRL-CAD + * + * Copyright (c) 2011 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ + +#include "common.h" + +#include <stdlib.h> +#include <stdarg.h> +#include <stdio.h> + +#include "bu.h" + + +/* Test against sprintf */ +void +test_vls(const char *fmt, ...) +{ + struct bu_vls vls = BU_VLS_INIT_ZERO; + char buffer[1024] = {0}; + va_list ap; + + va_start(ap, fmt); + vsprintf(buffer, fmt, ap); + va_end(ap); + + va_start(ap, fmt); + bu_vls_vprintf(&vls, fmt, ap); + va_end(ap); + + if (BU_STR_EQUAL(buffer, bu_vls_addr(&vls))) { + printf("%24s -> %24s [PASS]\n", fmt, bu_vls_addr(&vls)); + } else { + printf("%24s -> %24s [FAIL] (should be: %s)\n", fmt, bu_vls_addr(&vls), buffer); + } + + bu_vls_free(&vls); +} + + +int +main(int ac, char *av[]) +{ + printf("Testing vls\n"); + + test_vls(""); + test_vls("hello"); + test_vls("%s", "hello"); + test_vls("%d", 123); + + printf("%s: testing complete\n", av[0]); + return 0; +} + + +/* + * Local Variables: + * mode: C + * tab-width: 8 + * indent-tabs-mode: t + * c-file-style: "stroustrup" + * End: + * ex: shiftwidth=4 tabstop=8 + */ Property changes on: brlcad/trunk/src/libbu/test_vls.c ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |