[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[PATCH] Fix test_command_exec test (t-command)



Hello,

Hope this is the right please to sent patches for dpkg. I am currently
trying to get the dpkg test suite to pass for our Alpine Linux dpkg
package. While doing so I noticed a mistake in the test_command_exec()
function from t-command.c, the function doesn't set arg0 correctly. This
causes the test to fail as our busybox multicall binary (which provides
/bin/true) is not capable of finding an applet for "arg 0". Other
invocations of command_exec in dpkg explicitly set arg0 manually too.
The patch is attached as a git-format-patch(1).

The only remaining test failing on Alpine is ./t/dpkg_buildpackage.t it
fails with: ”error: Unmet build dependencies: build-essential:native“.
I guess that's because we don't actually use dpkg and don't have a
build-essential package? I disabled the test for now, if there is any
way to make it pass please let me know.

I am not subscribed to the list, please CC me.

Greetings,
Sören

>From d57373153f86770bda9298b69a2ada8ce676769c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Thu, 27 Aug 2020 21:43:40 +0200
Subject: [PATCH] t-command: Fix test_command_exec program invocation

>From exec(3):

	The argument arg0 should point to a filename string that is
	associated with the process being started by one of the exec
	functions.

Unfortunately, this test sets arg0 to the string "arg 0" this causes the
busybox multicall binary on Alpine Linux to assume that the applet "arg
0" (instead of true) should be executed. However, as such an applet does
not exist, the tests fails. This commit fixes the failing test by
setting arg0 correctly (as other parts of the dpkg codebase using the
command API do too).
---
 lib/dpkg/t/t-command.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/dpkg/t/t-command.c b/lib/dpkg/t/t-command.c
index 099884560..aeed7a1f2 100644
--- a/lib/dpkg/t/t-command.c
+++ b/lib/dpkg/t/t-command.c
@@ -170,6 +170,7 @@ test_command_exec(void)
 
 	command_init(&cmd, "true", "exec test");
 
+	command_add_arg(&cmd, "true");
 	command_add_arg(&cmd, "arg 0");
 	command_add_arg(&cmd, "arg 1");
 

Reply to: