mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 01:51:26 +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.dir/
|
||||
/testsuite.log
|
||||
/test-lib
|
||||
|
@ -24,6 +24,7 @@ TESTSUITE_AT = \
|
||||
tests/bfd.at \
|
||||
tests/cfm.at \
|
||||
tests/lacp.at \
|
||||
tests/lib.at \
|
||||
tests/learn.at \
|
||||
tests/vconn.at \
|
||||
tests/file_name.at \
|
||||
@ -192,6 +193,11 @@ tests_test_ovsdb_SOURCES = \
|
||||
EXTRA_DIST += tests/uuidfilt.pl tests/ovsdb-monitor-sort.pl
|
||||
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
|
||||
OVSIDL_BUILT += tests/idltest.c tests/idltest.h tests/idltest.ovsidl
|
||||
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_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