aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/frameworks/19 pcap
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/frameworks/19 pcap')
-rw-r--r--meson/test cases/frameworks/19 pcap/meson.build22
-rw-r--r--meson/test cases/frameworks/19 pcap/pcap_prog.c15
2 files changed, 37 insertions, 0 deletions
diff --git a/meson/test cases/frameworks/19 pcap/meson.build b/meson/test cases/frameworks/19 pcap/meson.build
new file mode 100644
index 000000000..051e49eed
--- /dev/null
+++ b/meson/test cases/frameworks/19 pcap/meson.build
@@ -0,0 +1,22 @@
+project('pcap test', 'c')
+
+pcap_dep = dependency('pcap', version : '>=1.0', required: false)
+
+if not pcap_dep.found()
+ error('MESON_SKIP_TEST pcap not found.')
+endif
+
+pcap_ver = pcap_dep.version()
+assert(pcap_ver.split('.').length() > 1, 'pcap version is "@0@"'.format(pcap_ver))
+
+e = executable('pcap_prog', 'pcap_prog.c', dependencies : pcap_dep)
+
+test('pcaptest', e)
+
+# Ensure discovery via the configuration tools work also
+pcap_dep = dependency('pcap', version : '>=1.0', method : 'pcap-config')
+pcap_dep = dependency('pcap', version : '>=1.0', method : 'config-tool')
+
+# Check we can apply a version constraint
+dependency('pcap', version: '>=@0@'.format(pcap_dep.version()), method: 'pkg-config', required: false)
+dependency('pcap', version: '>=@0@'.format(pcap_dep.version()), method: 'config-tool')
diff --git a/meson/test cases/frameworks/19 pcap/pcap_prog.c b/meson/test cases/frameworks/19 pcap/pcap_prog.c
new file mode 100644
index 000000000..0fca16cca
--- /dev/null
+++ b/meson/test cases/frameworks/19 pcap/pcap_prog.c
@@ -0,0 +1,15 @@
+#include <pcap/pcap.h>
+
+int
+main()
+{
+ char errbuf[PCAP_ERRBUF_SIZE];
+#ifdef __APPLE__
+ // source = NULL for "any" doesn't work on macOS (linux only?)
+ char *source = "en0";
+#else
+ char *source = NULL;
+#endif
+ pcap_t *p = pcap_create(source, errbuf);
+ return p == NULL;
+}