summaryrefslogtreecommitdiff
path: root/usr/src/test
diff options
context:
space:
mode:
authorDan McDonald <danmcd@mnx.io>2022-07-14 20:42:22 -0400
committerDan McDonald <danmcd@mnx.io>2022-07-14 20:42:22 -0400
commita302d8717ec80ee415db0e6ecd01399ea055e9ca (patch)
tree77ccf24a09b9e9a3f54a1f255a412345b7e67b49 /usr/src/test
parent054c6cfb7c5aeb9e46a8f23d52de715370d56595 (diff)
parent62d03eda78495dc4dc79a65a6b1899e11dc34b12 (diff)
downloadillumos-joyent-OS-8395.tar.gz
Merge branch 'master' into OS-8395OS-8395
Diffstat (limited to 'usr/src/test')
-rw-r--r--usr/src/test/bhyve-tests/runfiles/default.run6
-rw-r--r--usr/src/test/bhyve-tests/tests/Makefile2
-rw-r--r--usr/src/test/bhyve-tests/tests/viona/Makefile51
-rw-r--r--usr/src/test/bhyve-tests/tests/viona/interface_version.c51
4 files changed, 109 insertions, 1 deletions
diff --git a/usr/src/test/bhyve-tests/runfiles/default.run b/usr/src/test/bhyve-tests/runfiles/default.run
index 5cdd9647b6..8ec89a7a0a 100644
--- a/usr/src/test/bhyve-tests/runfiles/default.run
+++ b/usr/src/test/bhyve-tests/runfiles/default.run
@@ -49,6 +49,12 @@ tests = [
'triple_fault'
]
+[/opt/bhyve-tests/tests/viona]
+user = root
+tests = [
+ 'interface_version'
+ ]
+
# Tests of userspace mevent system, built from cmd/bhyve
[/opt/bhyve-tests/tests/mevent]
tests = ['lists_delete', 'read_disable', 'read_pause', 'read_requeue',
diff --git a/usr/src/test/bhyve-tests/tests/Makefile b/usr/src/test/bhyve-tests/tests/Makefile
index 5dc416db01..6742106ae0 100644
--- a/usr/src/test/bhyve-tests/tests/Makefile
+++ b/usr/src/test/bhyve-tests/tests/Makefile
@@ -15,6 +15,6 @@
.PARALLEL: $(SUBDIRS)
-SUBDIRS = inst_emul kdev vmm
+SUBDIRS = inst_emul kdev viona vmm
include $(SRC)/test/Makefile.com
diff --git a/usr/src/test/bhyve-tests/tests/viona/Makefile b/usr/src/test/bhyve-tests/tests/viona/Makefile
new file mode 100644
index 0000000000..8b68c11d35
--- /dev/null
+++ b/usr/src/test/bhyve-tests/tests/viona/Makefile
@@ -0,0 +1,51 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+# Copyright 2022 Oxide Computer Company
+
+include $(SRC)/cmd/Makefile.cmd
+include $(SRC)/cmd/Makefile.cmd.64
+include $(SRC)/test/Makefile.com
+
+PROG = interface_version
+
+CLEAN_OBJS = $(PROG:%=%.o)
+
+ROOTOPTPKG = $(ROOT)/opt/bhyve-tests
+TESTDIR = $(ROOTOPTPKG)/tests/viona
+
+CMDS = $(PROG:%=$(TESTDIR)/%)
+$(CMDS) := FILEMODE = 0555
+
+CSTD= $(CSTD_GNU99)
+CPPFLAGS = $(CPPFLAGS.master) \
+ -I$(SRC)/uts/intel
+
+all: $(PROG)
+
+install: all $(CMDS)
+
+clean:
+ -$(RM) $(CLEAN_OBJS)
+clobber: clean
+ -$(RM) $(PROG)
+
+$(CMDS): $(TESTDIR) $(PROG)
+
+$(TESTDIR):
+ $(INS.dir)
+
+$(TESTDIR)/%: %
+ $(INS.file)
+
+%: %.o
+ $(LINK.c) -o $@ $< $(LDLIBS)
+ $(POST_PROCESS)
diff --git a/usr/src/test/bhyve-tests/tests/viona/interface_version.c b/usr/src/test/bhyve-tests/tests/viona/interface_version.c
new file mode 100644
index 0000000000..1b3cd585f0
--- /dev/null
+++ b/usr/src/test/bhyve-tests/tests/viona/interface_version.c
@@ -0,0 +1,51 @@
+/*
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source. A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ */
+
+/*
+ * Copyright 2022 Oxide Computer Company
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <libgen.h>
+
+#include <sys/viona_io.h>
+
+#define VIONA_DEV "/dev/viona"
+
+int
+main(int argc, char *argv[])
+{
+ const char *suite_name = basename(argv[0]);
+
+ int ctl_fd = open(VIONA_DEV, O_EXCL | O_RDWR);
+ if (ctl_fd < 0) {
+ perror("could not open viona device");
+ return (EXIT_FAILURE);
+ }
+
+ int version = ioctl(ctl_fd, VNA_IOC_VERSION, 0);
+ if (version < 0) {
+ perror("VNA_IOC_VERSION ioctl failed");
+ return (EXIT_FAILURE);
+ }
+ if (version != VIONA_CURRENT_INTERFACE_VERSION) {
+ (void) fprintf(stderr, "kernel version %d != expected %d\n",
+ version, VIONA_CURRENT_INTERFACE_VERSION);
+ return (EXIT_FAILURE);
+ }
+
+ (void) close(ctl_fd);
+ (void) printf("%s\tPASS\n", suite_name);
+ return (0);
+}