Source: pciutils
Version: 1:3.6.4-1
Severity: wishlist
Tags: patch
While backporting the solution for #721270 into a Debian derivative, I
added the attached autopkgtest to verify that the -dev package works
correctly.
I've found that tests like this are a useful way to automate checks that
development files are packaged correctly: even though they don't have
significant coverage of the actual library code, they can detect common
mistakes like missing header files, wrong search paths, and missing
dependencies on other -dev packages referenced by the pkg-config file.
smcv
>From 1468841c3285ce7c42673e1639a52129ce372254 Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Tue, 12 May 2020 14:20:26 +0100
Subject: [PATCH] Add a superficial compile/link/execute autopkgtest for
libpci-dev
Signed-off-by: Simon McVittie <[email protected]>
---
debian/tests/control | 3 +++
debian/tests/libpci-dev | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+)
create mode 100644 debian/tests/control
create mode 100755 debian/tests/libpci-dev
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..1f2d981
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,3 @@
+Tests: libpci-dev
+Restrictions: allow-stderr, superficial
+Depends: build-essential, libpci-dev, pkg-config
diff --git a/debian/tests/libpci-dev b/debian/tests/libpci-dev
new file mode 100755
index 0000000..60b343b
--- /dev/null
+++ b/debian/tests/libpci-dev
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Copyright 2020 Collabora Ltd.
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set -eux
+
+if [ -n "${AUTOPKGTEST_ARTIFACTS-}" ]; then
+ WORKDIR="$AUTOPKGTEST_ARTIFACTS"
+else
+ WORKDIR="$(mktemp -d)"
+ trap 'cd /; rm -fr "$WORKDIR"' 0 INT QUIT ABRT PIPE TERM
+fi
+
+if [ -n "${DEB_HOST_GNU_TYPE:-}" ]; then
+ CROSS_COMPILE="$DEB_HOST_GNU_TYPE-"
+else
+ CROSS_COMPILE=
+fi
+
+cd "$WORKDIR"
+
+cat <<EOF > sample.c
+#include <pci/pci.h>
+
+int main(void)
+{
+ struct pci_access *a;
+ a = pci_alloc();
+ pci_init(a);
+ pci_cleanup(a);
+ return 0;
+}
+EOF
+
+# Deliberately word-splitting pkg-config's output:
+# shellcheck disable=SC2046
+"${CROSS_COMPILE}gcc" -osample sample.c $("${CROSS_COMPILE}pkg-config" --cflags --libs libpci)
+./sample
--
2.26.2