This test covers inclusion of public header files and basic usage of the API such as vlog.
Signed-off-by: Thomas Graf <tg...@noironetworks.com> --- tests/.gitignore | 1 + tests/automake.mk | 6 ++++ tests/lib.at | 9 ++++++ tests/library.at | 4 +++ tests/test-lib.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 114 insertions(+) create mode 100644 tests/lib.at create mode 100644 tests/test-lib.c diff --git a/tests/.gitignore b/tests/.gitignore index 03fb8e4..11167fb 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -46,3 +46,4 @@ /testsuite /testsuite.dir/ /testsuite.log +/test-lib diff --git a/tests/automake.mk b/tests/automake.mk index ccce112..7422f97 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -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 diff --git a/tests/lib.at b/tests/lib.at new file mode 100644 index 0000000..d5a30d4 --- /dev/null +++ b/tests/lib.at @@ -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 diff --git a/tests/library.at b/tests/library.at index ca174bb..2507688 100644 --- a/tests/library.at +++ b/tests/library.at @@ -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 diff --git a/tests/test-lib.c b/tests/test-lib.c new file mode 100644 index 0000000..059dd04 --- /dev/null +++ b/tests/test-lib.c @@ -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; +} -- 1.9.3 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev