summaryrefslogtreecommitdiff
path: root/t/cli
diff options
context:
space:
mode:
authorPierre Pronchery <khorben@FreeBSD.org>2026-06-25 22:30:05 +0000
committerPierre Pronchery <khorben@FreeBSD.org>2026-06-29 05:21:48 +0000
commitb0fc1b7a2fe8fcb18ee407227591bf25a86ffbaf (patch)
tree0cc32f86bf808bcf9d79da95db969cd76f0feadb /t/cli
parenteaa637963bcfde283b411c14968b7903b02d6aa1 (diff)
Diffstat (limited to 't/cli')
-rw-r--r--t/cli/atleast-version-fail.test4
-rw-r--r--t/cli/atleast-version-inline-constraint.test3
-rw-r--r--t/cli/atleast-version-inline-overrides.test3
-rw-r--r--t/cli/atleast-version-pass.test4
-rw-r--r--t/cli/debug.test7
-rw-r--r--t/cli/define-variable.test4
-rw-r--r--t/cli/dont-define-prefix.test4
-rw-r--r--t/cli/dump-personality-loaded.test12
-rw-r--r--t/cli/env-allow-system-cflags-default.test7
-rw-r--r--t/cli/env-allow-system-cflags.test7
-rw-r--r--t/cli/env-allow-system-libs-default.test7
-rw-r--r--t/cli/env-allow-system-libs.test7
-rw-r--r--t/cli/env-dont-relocate-paths.test6
-rw-r--r--t/cli/env-early-trace.test8
-rw-r--r--t/cli/env-log.test9
-rw-r--r--t/cli/env-maximum-traverse-depth.test6
-rw-r--r--t/cli/env-msvc-syntax.test7
-rw-r--r--t/cli/env-only.test4
-rw-r--r--t/cli/env-top-build-dir.test5
-rw-r--r--t/cli/env.test6
-rw-r--r--t/cli/exact-version-fail.test4
-rw-r--r--t/cli/exact-version-inline-constraint.test3
-rw-r--r--t/cli/exact-version-inline-overrides.test3
-rw-r--r--t/cli/exact-version-pass.test4
-rw-r--r--t/cli/fragment-filter.test4
-rw-r--r--t/cli/internal-cflags.test4
-rw-r--r--t/cli/keep-system-cflags-flag.test6
-rw-r--r--t/cli/keep-system-libs-flag.test6
-rw-r--r--t/cli/list-package-names.test5
-rw-r--r--t/cli/log-file.test8
-rw-r--r--t/cli/max-version-fail.test4
-rw-r--r--t/cli/max-version-inline-constraint.test3
-rw-r--r--t/cli/max-version-inline-overrides.test3
-rw-r--r--t/cli/max-version-pass.test4
-rw-r--r--t/cli/maximum-traverse-depth.test5
-rw-r--r--t/cli/no-cache.test4
-rw-r--r--t/cli/no-provides.test3
-rw-r--r--t/cli/no-uninstalled.test3
-rw-r--r--t/cli/path.test6
-rw-r--r--t/cli/personality.test5
-rw-r--r--t/cli/prefix-variable.test4
-rw-r--r--t/cli/print-provides.test6
-rw-r--r--t/cli/print-requires-private.test4
-rw-r--r--t/cli/print-requires.test4
-rw-r--r--t/cli/print-variables.test6
-rw-r--r--t/cli/shared.test4
-rw-r--r--t/cli/short-errors.test4
-rw-r--r--t/cli/silence-errors.test5
-rw-r--r--t/cli/simulate.test8
-rw-r--r--t/cli/solution.test8
-rw-r--r--t/cli/validate-warning.test6
-rw-r--r--t/cli/validate.test6
-rw-r--r--t/cli/variable.test4
-rw-r--r--t/cli/verbose.test4
-rw-r--r--t/cli/with-path.test4
55 files changed, 284 insertions, 0 deletions
diff --git a/t/cli/atleast-version-fail.test b/t/cli/atleast-version-fail.test
new file mode 100644
index 000000000000..4d318cc88d79
--- /dev/null
+++ b/t/cli/atleast-version-fail.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --atleast-version=2.0.0 foo
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedExitCode: 1
diff --git a/t/cli/atleast-version-inline-constraint.test b/t/cli/atleast-version-inline-constraint.test
new file mode 100644
index 000000000000..0c7353377a0e
--- /dev/null
+++ b/t/cli/atleast-version-inline-constraint.test
@@ -0,0 +1,3 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --atleast-version=1 "foo > 2"
+ExpectedExitCode: 1
diff --git a/t/cli/atleast-version-inline-overrides.test b/t/cli/atleast-version-inline-overrides.test
new file mode 100644
index 000000000000..e691482eceb9
--- /dev/null
+++ b/t/cli/atleast-version-inline-overrides.test
@@ -0,0 +1,3 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --atleast-version=3 "foo > 1"
+ExpectedExitCode: 0
diff --git a/t/cli/atleast-version-pass.test b/t/cli/atleast-version-pass.test
new file mode 100644
index 000000000000..181fd3df33f8
--- /dev/null
+++ b/t/cli/atleast-version-pass.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --atleast-version=1.0.0 foo
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedExitCode: 0
diff --git a/t/cli/debug.test b/t/cli/debug.test
new file mode 100644
index 000000000000..a6a851c86e07
--- /dev/null
+++ b/t/cli/debug.test
@@ -0,0 +1,7 @@
+Tool: pkgconf
+ToolArgs: --debug --exists foo 2>&1
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedStdout: preloading pkg
+MatchStdout: partial
+ExpectedExitCode: 0
+SkipPlatforms: lite
diff --git a/t/cli/define-variable.test b/t/cli/define-variable.test
new file mode 100644
index 000000000000..58747e745167
--- /dev/null
+++ b/t/cli/define-variable.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --define-variable=prefix=/test2 --variable=prefix foo
+ExpectedStdout: /test2
+ExpectedExitCode: 0
diff --git a/t/cli/dont-define-prefix.test b/t/cli/dont-define-prefix.test
new file mode 100644
index 000000000000..b58dc4382f74
--- /dev/null
+++ b/t/cli/dont-define-prefix.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --define-prefix --dont-define-prefix --variable=prefix %TEST_FIXTURES_DIR%/lib-relocatable/lib/pkgconfig/foo.pc
+ExpectedStdout: /test
+ExpectedExitCode: 0
diff --git a/t/cli/dump-personality-loaded.test b/t/cli/dump-personality-loaded.test
new file mode 100644
index 000000000000..3a3640308aea
--- /dev/null
+++ b/t/cli/dump-personality-loaded.test
@@ -0,0 +1,12 @@
+Tool: pkgconf
+ToolArgs: --personality=%TEST_FIXTURES_DIR%/personality-data/sysrooted.personality --dump-personality
+ExpectedStdout: Triplet: i386-linux-gnu
+ExpectedStdout: SysrootDir: /custom/sysroot
+ExpectedStdout: DefaultSearchPaths: /usr/lib/i386-linux-gnu/pkgconfig:/usr/share/pkgconfig
+ExpectedStdout: SystemIncludePaths: /usr/lib/i386-linux-gnu/include
+ExpectedStdout: SystemLibraryPaths: /usr/lib/i386-linux-gnu/lib
+ExpectedStdout: WantDefaultPure: true
+ExpectedStdout: WantDefaultStatic: true
+MatchStdout: partial
+ExpectedExitCode: 0
+SkipPlatforms: lite
diff --git a/t/cli/env-allow-system-cflags-default.test b/t/cli/env-allow-system-cflags-default.test
new file mode 100644
index 000000000000..e5243d1a3766
--- /dev/null
+++ b/t/cli/env-allow-system-cflags-default.test
@@ -0,0 +1,7 @@
+Tool: pkgconf
+ToolArgs: --cflags-only-I cflags-libs-only
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_SYSTEM_INCLUDE_PATH=/test/local/include/foo
+ExpectedStdout:
+MatchStdout: empty
+ExpectedExitCode: 0
diff --git a/t/cli/env-allow-system-cflags.test b/t/cli/env-allow-system-cflags.test
new file mode 100644
index 000000000000..019d3f14254d
--- /dev/null
+++ b/t/cli/env-allow-system-cflags.test
@@ -0,0 +1,7 @@
+Tool: pkgconf
+ToolArgs: --cflags-only-I cflags-libs-only
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_SYSTEM_INCLUDE_PATH=/test/local/include/foo
+Environment: PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
+ExpectedStdout: -I/test/local/include/foo
+ExpectedExitCode: 0
diff --git a/t/cli/env-allow-system-libs-default.test b/t/cli/env-allow-system-libs-default.test
new file mode 100644
index 000000000000..90803db8aeaa
--- /dev/null
+++ b/t/cli/env-allow-system-libs-default.test
@@ -0,0 +1,7 @@
+Tool: pkgconf
+ToolArgs: --libs-only-L cflags-libs-only
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_SYSTEM_LIBRARY_PATH=/test/local/lib
+ExpectedStdout:
+MatchStdout: empty
+ExpectedExitCode: 0
diff --git a/t/cli/env-allow-system-libs.test b/t/cli/env-allow-system-libs.test
new file mode 100644
index 000000000000..ecf9e846642e
--- /dev/null
+++ b/t/cli/env-allow-system-libs.test
@@ -0,0 +1,7 @@
+Tool: pkgconf
+ToolArgs: --libs-only-L cflags-libs-only
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_SYSTEM_LIBRARY_PATH=/test/local/lib
+Environment: PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
+ExpectedStdout: -L/test/local/lib
+ExpectedExitCode: 0
diff --git a/t/cli/env-dont-relocate-paths.test b/t/cli/env-dont-relocate-paths.test
new file mode 100644
index 000000000000..0cf931d39f3b
--- /dev/null
+++ b/t/cli/env-dont-relocate-paths.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --libs bar
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_DONT_RELOCATE_PATHS=1
+ExpectedStdout: -L/test/lib -lbar -lfoo
+ExpectedExitCode: 0
diff --git a/t/cli/env-early-trace.test b/t/cli/env-early-trace.test
new file mode 100644
index 000000000000..4502a4be7127
--- /dev/null
+++ b/t/cli/env-early-trace.test
@@ -0,0 +1,8 @@
+Tool: pkgconf
+ToolArgs: --exists foo 2>&1
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_EARLY_TRACE=1
+ExpectedStdout: installing default unveil handler
+MatchStdout: partial
+ExpectedExitCode: 0
+SkipPlatforms: lite
diff --git a/t/cli/env-log.test b/t/cli/env-log.test
new file mode 100644
index 000000000000..0c71e673ac0f
--- /dev/null
+++ b/t/cli/env-log.test
@@ -0,0 +1,9 @@
+Tool: pkgconf
+ToolArgs: --exists foo; cat out/audit.log
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_LOG=out/audit.log
+SetupMkdir: out
+ExpectedStdout: foo [1.2.3]
+MatchStdout: partial
+ExpectedExitCode: 0
+SkipPlatforms: windows
diff --git a/t/cli/env-maximum-traverse-depth.test b/t/cli/env-maximum-traverse-depth.test
new file mode 100644
index 000000000000..62fb03f59096
--- /dev/null
+++ b/t/cli/env-maximum-traverse-depth.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --libs bar
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_MAXIMUM_TRAVERSE_DEPTH=1
+ExpectedStdout: -L/test/lib -lbar
+ExpectedExitCode: 0
diff --git a/t/cli/env-msvc-syntax.test b/t/cli/env-msvc-syntax.test
new file mode 100644
index 000000000000..60b49fb39023
--- /dev/null
+++ b/t/cli/env-msvc-syntax.test
@@ -0,0 +1,7 @@
+Tool: pkgconf
+ToolArgs: --libs foo
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_MSVC_SYNTAX=1
+ExpectedStdout: /libpath:/test/lib foo.lib
+ExpectedExitCode: 0
+SkipPlatforms: lite
diff --git a/t/cli/env-only.test b/t/cli/env-only.test
new file mode 100644
index 000000000000..db543ccf6f44
--- /dev/null
+++ b/t/cli/env-only.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --env-only --libs foo
+Environment: PKG_CONFIG_LIBDIR=%TEST_FIXTURES_DIR%/lib1
+ExpectedExitCode: 1
diff --git a/t/cli/env-top-build-dir.test b/t/cli/env-top-build-dir.test
new file mode 100644
index 000000000000..02beb8a917dc
--- /dev/null
+++ b/t/cli/env-top-build-dir.test
@@ -0,0 +1,5 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --cflags top-builddir
+Environment: PKG_CONFIG_TOP_BUILD_DIR=/my/build
+ExpectedStdout: -I/my/build/include
+ExpectedExitCode: 0
diff --git a/t/cli/env.test b/t/cli/env.test
new file mode 100644
index 000000000000..49f773a30db4
--- /dev/null
+++ b/t/cli/env.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --env=FOO --cflags --libs foo
+ExpectedStdout: FOO_CFLAGS='-fPIC -I/test/include/foo'
+ExpectedStdout: FOO_LIBS='-L/test/lib -lfoo'
+MatchStdout: partial
+ExpectedExitCode: 0
diff --git a/t/cli/exact-version-fail.test b/t/cli/exact-version-fail.test
new file mode 100644
index 000000000000..09178f3d1344
--- /dev/null
+++ b/t/cli/exact-version-fail.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --exact-version=1.2.4 foo
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedExitCode: 1
diff --git a/t/cli/exact-version-inline-constraint.test b/t/cli/exact-version-inline-constraint.test
new file mode 100644
index 000000000000..1ca42b1f4913
--- /dev/null
+++ b/t/cli/exact-version-inline-constraint.test
@@ -0,0 +1,3 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --exact-version=1.2.3 "foo > 2"
+ExpectedExitCode: 1
diff --git a/t/cli/exact-version-inline-overrides.test b/t/cli/exact-version-inline-overrides.test
new file mode 100644
index 000000000000..72940975bf26
--- /dev/null
+++ b/t/cli/exact-version-inline-overrides.test
@@ -0,0 +1,3 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --exact-version=9 "foo > 1"
+ExpectedExitCode: 0
diff --git a/t/cli/exact-version-pass.test b/t/cli/exact-version-pass.test
new file mode 100644
index 000000000000..171f05ad3cb9
--- /dev/null
+++ b/t/cli/exact-version-pass.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --exact-version=1.2.3 foo
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedExitCode: 0
diff --git a/t/cli/fragment-filter.test b/t/cli/fragment-filter.test
new file mode 100644
index 000000000000..0746506dd155
--- /dev/null
+++ b/t/cli/fragment-filter.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --fragment-filter=L --libs foo
+ExpectedStdout: -L/test/lib
+ExpectedExitCode: 0
diff --git a/t/cli/internal-cflags.test b/t/cli/internal-cflags.test
new file mode 100644
index 000000000000..889e1cf148b1
--- /dev/null
+++ b/t/cli/internal-cflags.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --internal-cflags --cflags requires-internal-2
+ExpectedStdout: -I/test/local/include/foo
+ExpectedExitCode: 0
diff --git a/t/cli/keep-system-cflags-flag.test b/t/cli/keep-system-cflags-flag.test
new file mode 100644
index 000000000000..8051d7520878
--- /dev/null
+++ b/t/cli/keep-system-cflags-flag.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --keep-system-cflags --cflags-only-I cflags-libs-only
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_SYSTEM_INCLUDE_PATH=/test/local/include/foo
+ExpectedStdout: -I/test/local/include/foo
+ExpectedExitCode: 0
diff --git a/t/cli/keep-system-libs-flag.test b/t/cli/keep-system-libs-flag.test
new file mode 100644
index 000000000000..db10db75525f
--- /dev/null
+++ b/t/cli/keep-system-libs-flag.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --keep-system-libs --libs-only-L cflags-libs-only
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+Environment: PKG_CONFIG_SYSTEM_LIBRARY_PATH=/test/local/lib
+ExpectedStdout: -L/test/local/lib
+ExpectedExitCode: 0
diff --git a/t/cli/list-package-names.test b/t/cli/list-package-names.test
new file mode 100644
index 000000000000..eac0222adde0
--- /dev/null
+++ b/t/cli/list-package-names.test
@@ -0,0 +1,5 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --list-package-names
+ExpectedStdout: pkg-config
+MatchStdout: partial
+ExpectedExitCode: 0
diff --git a/t/cli/log-file.test b/t/cli/log-file.test
new file mode 100644
index 000000000000..e539f4212e10
--- /dev/null
+++ b/t/cli/log-file.test
@@ -0,0 +1,8 @@
+Tool: pkgconf
+ToolArgs: --log-file=out/audit.log --exists foo; cat out/audit.log
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+SetupMkdir: out
+ExpectedStdout: foo [1.2.3]
+MatchStdout: partial
+ExpectedExitCode: 0
+SkipPlatforms: windows
diff --git a/t/cli/max-version-fail.test b/t/cli/max-version-fail.test
new file mode 100644
index 000000000000..1fe96b3d4fa8
--- /dev/null
+++ b/t/cli/max-version-fail.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --max-version=1.0.0 foo
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedExitCode: 1
diff --git a/t/cli/max-version-inline-constraint.test b/t/cli/max-version-inline-constraint.test
new file mode 100644
index 000000000000..c7b89f4b5999
--- /dev/null
+++ b/t/cli/max-version-inline-constraint.test
@@ -0,0 +1,3 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --max-version=9 "foo > 2"
+ExpectedExitCode: 1
diff --git a/t/cli/max-version-inline-overrides.test b/t/cli/max-version-inline-overrides.test
new file mode 100644
index 000000000000..63462b185bab
--- /dev/null
+++ b/t/cli/max-version-inline-overrides.test
@@ -0,0 +1,3 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --max-version=0 "foo > 1"
+ExpectedExitCode: 0
diff --git a/t/cli/max-version-pass.test b/t/cli/max-version-pass.test
new file mode 100644
index 000000000000..5c2feaabdedd
--- /dev/null
+++ b/t/cli/max-version-pass.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --max-version=2.0.0 foo
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedExitCode: 0
diff --git a/t/cli/maximum-traverse-depth.test b/t/cli/maximum-traverse-depth.test
new file mode 100644
index 000000000000..6bfd0706fc66
--- /dev/null
+++ b/t/cli/maximum-traverse-depth.test
@@ -0,0 +1,5 @@
+Tool: pkgconf
+ToolArgs: --maximum-traverse-depth=1 --libs bar
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedStdout: -L/test/lib -lbar
+ExpectedExitCode: 0
diff --git a/t/cli/no-cache.test b/t/cli/no-cache.test
new file mode 100644
index 000000000000..988e54bcb99f
--- /dev/null
+++ b/t/cli/no-cache.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --no-cache --libs foo
+ExpectedStdout: -L/test/lib -lfoo
+ExpectedExitCode: 0
diff --git a/t/cli/no-provides.test b/t/cli/no-provides.test
new file mode 100644
index 000000000000..e017bc5d296f
--- /dev/null
+++ b/t/cli/no-provides.test
@@ -0,0 +1,3 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --no-provides --exists provides-test-foo
+ExpectedExitCode: 1
diff --git a/t/cli/no-uninstalled.test b/t/cli/no-uninstalled.test
new file mode 100644
index 000000000000..6e194fd63a26
--- /dev/null
+++ b/t/cli/no-uninstalled.test
@@ -0,0 +1,3 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --no-uninstalled --exists omg
+ExpectedExitCode: 1
diff --git a/t/cli/path.test b/t/cli/path.test
new file mode 100644
index 000000000000..a8a1f0165a21
--- /dev/null
+++ b/t/cli/path.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --path foo
+ExpectedStdout: %TEST_FIXTURES_DIR%/lib1
+ExpectedStdout: foo.pc
+MatchStdout: partial
+ExpectedExitCode: 0
diff --git a/t/cli/personality.test b/t/cli/personality.test
new file mode 100644
index 000000000000..20ffaba959a9
--- /dev/null
+++ b/t/cli/personality.test
@@ -0,0 +1,5 @@
+Tool: pkgconf
+ToolArgs: --personality=%TEST_FIXTURES_DIR%/personality-data/i386-linux-gnu.personality --variable=pc_path pkg-config
+ExpectedStdout: /usr/lib/i386-linux-gnu/pkgconfig:/usr/share/pkgconfig
+ExpectedExitCode: 0
+SkipPlatforms: lite
diff --git a/t/cli/prefix-variable.test b/t/cli/prefix-variable.test
new file mode 100644
index 000000000000..2dd6ccd7758b
--- /dev/null
+++ b/t/cli/prefix-variable.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --define-prefix --prefix-variable=prefix --variable=prefix %TEST_FIXTURES_DIR%/lib-relocatable/lib/pkgconfig/foo.pc
+ExpectedStdout: %TEST_FIXTURES_DIR%/lib-relocatable
+ExpectedExitCode: 0
diff --git a/t/cli/print-provides.test b/t/cli/print-provides.test
new file mode 100644
index 000000000000..42ed931bc841
--- /dev/null
+++ b/t/cli/print-provides.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --print-provides provides
+ExpectedStdout: provides-test-foo = 1.0.0
+ExpectedStdout: provides-test-meow != 1.3.0
+MatchStdout: partial
+ExpectedExitCode: 0
diff --git a/t/cli/print-requires-private.test b/t/cli/print-requires-private.test
new file mode 100644
index 000000000000..0bd638667455
--- /dev/null
+++ b/t/cli/print-requires-private.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --print-requires-private baz
+ExpectedStdout: foo
+ExpectedExitCode: 0
diff --git a/t/cli/print-requires.test b/t/cli/print-requires.test
new file mode 100644
index 000000000000..e1975e7d96fe
--- /dev/null
+++ b/t/cli/print-requires.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --print-requires bar
+ExpectedStdout: foo
+ExpectedExitCode: 0
diff --git a/t/cli/print-variables.test b/t/cli/print-variables.test
new file mode 100644
index 000000000000..34dc81da475f
--- /dev/null
+++ b/t/cli/print-variables.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --print-variables foo
+ExpectedStdout: pcfiledir
+ExpectedStdout: includedir
+MatchStdout: partial
+ExpectedExitCode: 0
diff --git a/t/cli/shared.test b/t/cli/shared.test
new file mode 100644
index 000000000000..629fddcd2719
--- /dev/null
+++ b/t/cli/shared.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --static --shared --libs baz
+ExpectedStdout: -L/test/lib -lbaz
+ExpectedExitCode: 0
diff --git a/t/cli/short-errors.test b/t/cli/short-errors.test
new file mode 100644
index 000000000000..34c47fde69b0
--- /dev/null
+++ b/t/cli/short-errors.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --short-errors --cflags nonexistent 2>&1
+ExpectedStdout: Package 'nonexistent' not found
+ExpectedExitCode: 1
diff --git a/t/cli/silence-errors.test b/t/cli/silence-errors.test
new file mode 100644
index 000000000000..93cf87d47641
--- /dev/null
+++ b/t/cli/silence-errors.test
@@ -0,0 +1,5 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --silence-errors --cflags nonexistent 2>&1
+ExpectedStdout:
+MatchStdout: empty
+ExpectedExitCode: 1
diff --git a/t/cli/simulate.test b/t/cli/simulate.test
new file mode 100644
index 000000000000..dabd47dd8a3e
--- /dev/null
+++ b/t/cli/simulate.test
@@ -0,0 +1,8 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --simulate bar
+ExpectedStdout: node 'virtual:world' {
+ExpectedStdout: node 'bar' {
+ExpectedStdout: dependency 'foo';
+MatchStdout: partial
+ExpectedExitCode: 0
+SkipPlatforms: lite
diff --git a/t/cli/solution.test b/t/cli/solution.test
new file mode 100644
index 000000000000..39f141b2b63e
--- /dev/null
+++ b/t/cli/solution.test
@@ -0,0 +1,8 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --solution bar
+ExpectedStdout: virtual:world
+ExpectedStdout: bar
+ExpectedStdout: foo
+MatchStdout: partial
+ExpectedExitCode: 0
+SkipPlatforms: lite
diff --git a/t/cli/validate-warning.test b/t/cli/validate-warning.test
new file mode 100644
index 000000000000..823dde3f5603
--- /dev/null
+++ b/t/cli/validate-warning.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --validate malformed-version
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedStdout: warning: malformed version field with whitespace
+MatchStdout: partial
+ExpectedExitCode: 0
diff --git a/t/cli/validate.test b/t/cli/validate.test
new file mode 100644
index 000000000000..cc1b1e98b686
--- /dev/null
+++ b/t/cli/validate.test
@@ -0,0 +1,6 @@
+Tool: pkgconf
+ToolArgs: --validate foo
+Environment: PKG_CONFIG_PATH=%TEST_FIXTURES_DIR%/lib1
+ExpectedStdout:
+MatchStdout: empty
+ExpectedExitCode: 0
diff --git a/t/cli/variable.test b/t/cli/variable.test
new file mode 100644
index 000000000000..d3cfe7f15497
--- /dev/null
+++ b/t/cli/variable.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --variable=prefix foo
+ExpectedStdout: /test
+ExpectedExitCode: 0
diff --git a/t/cli/verbose.test b/t/cli/verbose.test
new file mode 100644
index 000000000000..b7a02e6bc374
--- /dev/null
+++ b/t/cli/verbose.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --verbose --modversion foo
+ExpectedStdout: foo: 1.2.3
+ExpectedExitCode: 0
diff --git a/t/cli/with-path.test b/t/cli/with-path.test
new file mode 100644
index 000000000000..0196261f0f9a
--- /dev/null
+++ b/t/cli/with-path.test
@@ -0,0 +1,4 @@
+Tool: pkgconf
+ToolArgs: --with-path=%TEST_FIXTURES_DIR%/lib1 --libs foo
+ExpectedStdout: -L/test/lib -lfoo
+ExpectedExitCode: 0