mirror of
https://github.com/openvswitch/ovs
synced 2025-08-29 21:38:13 +00:00
lib: Add test for library usage
This test covers inclusion of public header files and basic usage of the API such as vlog. Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
parent
4a1f523f2d
commit
acf72f1322
1
tests/.gitignore
vendored
1
tests/.gitignore
vendored
@ -46,3 +46,4 @@
|
|||||||
/testsuite
|
/testsuite
|
||||||
/testsuite.dir/
|
/testsuite.dir/
|
||||||
/testsuite.log
|
/testsuite.log
|
||||||
|
/test-lib
|
||||||
|
@ -24,6 +24,7 @@ TESTSUITE_AT = \
|
|||||||
tests/bfd.at \
|
tests/bfd.at \
|
||||||
tests/cfm.at \
|
tests/cfm.at \
|
||||||
tests/lacp.at \
|
tests/lacp.at \
|
||||||
|
tests/lib.at \
|
||||||
tests/learn.at \
|
tests/learn.at \
|
||||||
tests/vconn.at \
|
tests/vconn.at \
|
||||||
tests/file_name.at \
|
tests/file_name.at \
|
||||||
@ -192,6 +193,11 @@ tests_test_ovsdb_SOURCES = \
|
|||||||
EXTRA_DIST += tests/uuidfilt.pl tests/ovsdb-monitor-sort.pl
|
EXTRA_DIST += tests/uuidfilt.pl tests/ovsdb-monitor-sort.pl
|
||||||
tests_test_ovsdb_LDADD = ovsdb/libovsdb.la lib/libopenvswitch.la
|
tests_test_ovsdb_LDADD = ovsdb/libovsdb.la lib/libopenvswitch.la
|
||||||
|
|
||||||
|
noinst_PROGRAMS += tests/test-lib
|
||||||
|
tests_test_lib_SOURCES = \
|
||||||
|
tests/test-lib.c
|
||||||
|
tests_test_lib_LDADD = lib/libopenvswitch.la
|
||||||
|
|
||||||
# idltest schema and IDL
|
# idltest schema and IDL
|
||||||
OVSIDL_BUILT += tests/idltest.c tests/idltest.h tests/idltest.ovsidl
|
OVSIDL_BUILT += tests/idltest.c tests/idltest.h tests/idltest.ovsidl
|
||||||
IDLTEST_IDL_FILES = tests/idltest.ovsschema tests/idltest.ann
|
IDLTEST_IDL_FILES = tests/idltest.ovsschema tests/idltest.ann
|
||||||
|
9
tests/lib.at
Normal file
9
tests/lib.at
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
AT_BANNER([Library -- basic])
|
||||||
|
|
||||||
|
AT_SETUP([successful linking])
|
||||||
|
AT_KEYWORDS([libopenvswitch])
|
||||||
|
AT_CAPTURE_FILE([log])
|
||||||
|
AT_CHECK(
|
||||||
|
[test-lib], [0],
|
||||||
|
[], [ignore])
|
||||||
|
AT_CLEANUP
|
@ -205,3 +205,7 @@ AT_SETUP([test bitmap functions])
|
|||||||
AT_CHECK([ovstest test-bitmap check], [0], [..
|
AT_CHECK([ovstest test-bitmap check], [0], [..
|
||||||
])
|
])
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
|
||||||
|
AT_SETUP([use of public headers])
|
||||||
|
AT_CHECK([test-lib], [0], [])
|
||||||
|
AT_CLEANUP
|
||||||
|
94
tests/test-lib.c
Normal file
94
tests/test-lib.c
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2014 Cisco Systems, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <getopt.h>
|
||||||
|
#include <openvswitch/compiler.h>
|
||||||
|
#include <openvswitch/thread.h>
|
||||||
|
#include <openvswitch/types.h>
|
||||||
|
#include <openvswitch/util.h>
|
||||||
|
#include <openvswitch/vconn.h>
|
||||||
|
#include <openvswitch/vlog.h>
|
||||||
|
|
||||||
|
static void
|
||||||
|
show_version(void)
|
||||||
|
{
|
||||||
|
printf("%s - %s\n",
|
||||||
|
ovs_get_program_name(), ovs_get_program_version());
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
usage(void)
|
||||||
|
{
|
||||||
|
printf("%s: Open vSwitch library test utility\n"
|
||||||
|
"usage: %s [OPTIONS] COMMAND [ARG...]\n\n",
|
||||||
|
ovs_get_program_name(), ovs_get_program_name());
|
||||||
|
vlog_usage();
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
parse_options(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
static const struct option long_options[] = {
|
||||||
|
{"help", no_argument, NULL, 'h'},
|
||||||
|
{"version", no_argument, NULL, 'V'},
|
||||||
|
{"verbose", optional_argument, NULL, 'v'},
|
||||||
|
{NULL, 0, NULL, 0},
|
||||||
|
};
|
||||||
|
char *short_options = "hVv";
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
int c;
|
||||||
|
|
||||||
|
c = getopt_long(argc, argv, short_options, long_options, NULL);
|
||||||
|
if (c == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (c) {
|
||||||
|
case 'V':
|
||||||
|
show_version();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'h':
|
||||||
|
usage();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'v':
|
||||||
|
vlog_set_verbosity(optarg);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '?':
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
|
||||||
|
default:
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
ovs_set_program_name(argv[0], "1.0");
|
||||||
|
parse_options(argc, argv);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user