{"thread":{"id":"63121","subject":"[PATCH] meson: use test_environment conditionally.","startedAt":"2025-03-14T18:03:17Z","lastAt":"2025-03-19T13:39:36Z","messageCount":2,"participants":["Sam James","Patrick Steinhardt"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"514288","messageId":"310a34bace801d288e369c6a01a8d04ffc4c3c06.1741975367.git.sam@gentoo.org","threadId":"63121","inReplyTo":null,"subject":"[PATCH] meson: use test_environment conditionally.","fromName":"Sam James","fromEmail":"sam@gentoo.org","sentAt":"2025-03-14T18:02:47Z","receivedAt":"2025-03-14T18:03:17Z","isPatch":true,"sender":{"key":"sam@gentoo.org","avatar":"https://avatars.githubusercontent.com/u/11667869?v=4"},"body":"test_environment is only defined with -Dtests, so use it conditionally\nand define a stub environment() instead, to avoid erroring out:\n\n```\n$ meson setup -Dtests=false -Dcontrib=subtree build\n[...]\n\ncontrib/subtree/meson.build:15:27: ERROR: Unknown variable \"test_environment\".\n```\n\nDo the same for 'netrc' in contrib/ as it uses the same pattern.\n---\nNot sure if we can do better here somehow or not (with a disabler?)\n\n contrib/credential/netrc/meson.build | 8 ++++++--\n contrib/subtree/meson.build          | 8 ++++++--\n 2 files changed, 12 insertions(+), 4 deletions(-)\n\ndiff --git a/contrib/credential/netrc/meson.build b/contrib/credential/netrc/meson.build\nindex a990dbb86d..6d815d01c4 100644\n--- a/contrib/credential/netrc/meson.build\n+++ b/contrib/credential/netrc/meson.build\n@@ -7,8 +7,12 @@ credential_netrc = custom_target(\n   install_dir: get_option('libexecdir') / 'git-core',\n )\n \n-credential_netrc_testenv = test_environment\n-credential_netrc_testenv.set('CREDENTIAL_NETRC_PATH', credential_netrc.full_path())\n+if get_option('tests')\n+  credential_netrc_testenv = test_environment\n+  credential_netrc_testenv.set('CREDENTIAL_NETRC_PATH', credential_netrc.full_path())\n+else\n+  credential_netrc_testenv = environment()\n+fi\n \n test('t-git-credential-netrc',\n   shell,\ndiff --git a/contrib/subtree/meson.build b/contrib/subtree/meson.build\nindex 9c72b23625..d18f188216 100644\n--- a/contrib/subtree/meson.build\n+++ b/contrib/subtree/meson.build\n@@ -12,8 +12,12 @@ git_subtree = custom_target(\n   install_dir: get_option('libexecdir') / 'git-core',\n )\n \n-subtree_test_environment = test_environment\n-subtree_test_environment.prepend('PATH', meson.current_build_dir())\n+if get_option('tests')\n+  subtree_test_environment = test_environment\n+  subtree_test_environment.prepend('PATH', meson.current_build_dir())\n+else\n+  subtree_test_environment = environment()\n+endif\n \n test('t7900-subtree', shell,\n   args: [ 't7900-subtree.sh' ],\n-- \n2.48.1\n\n"},{"id":"514640","messageId":"Z9rJFG7aOVg3gDTM@pks.im","threadId":"63121","inReplyTo":"310a34bace801d288e369c6a01a8d04ffc4c3c06.1741975367.git.sam@gentoo.org","subject":"Re: [PATCH] meson: use test_environment conditionally.","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-03-19T13:39:32Z","receivedAt":"2025-03-19T13:39:36Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Fri, Mar 14, 2025 at 06:02:47PM +0000, Sam James wrote:\n> test_environment is only defined with -Dtests, so use it conditionally\n> and define a stub environment() instead, to avoid erroring out:\n> \n> ```\n> $ meson setup -Dtests=false -Dcontrib=subtree build\n> [...]\n> \n> contrib/subtree/meson.build:15:27: ERROR: Unknown variable \"test_environment\".\n> ```\n> \n> Do the same for 'netrc' in contrib/ as it uses the same pattern.\n> ---\n> Not sure if we can do better here somehow or not (with a disabler?)\n> \n>  contrib/credential/netrc/meson.build | 8 ++++++--\n>  contrib/subtree/meson.build          | 8 ++++++--\n>  2 files changed, 12 insertions(+), 4 deletions(-)\n> \n> diff --git a/contrib/credential/netrc/meson.build b/contrib/credential/netrc/meson.build\n> index a990dbb86d..6d815d01c4 100644\n> --- a/contrib/credential/netrc/meson.build\n> +++ b/contrib/credential/netrc/meson.build\n> @@ -7,8 +7,12 @@ credential_netrc = custom_target(\n>    install_dir: get_option('libexecdir') / 'git-core',\n>  )\n>  \n> -credential_netrc_testenv = test_environment\n> -credential_netrc_testenv.set('CREDENTIAL_NETRC_PATH', credential_netrc.full_path())\n> +if get_option('tests')\n> +  credential_netrc_testenv = test_environment\n> +  credential_netrc_testenv.set('CREDENTIAL_NETRC_PATH', credential_netrc.full_path())\n> +else\n> +  credential_netrc_testenv = environment()\n> +fi\n>  \n>  test('t-git-credential-netrc',\n>    shell,\n> diff --git a/contrib/subtree/meson.build b/contrib/subtree/meson.build\n> index 9c72b23625..d18f188216 100644\n> --- a/contrib/subtree/meson.build\n> +++ b/contrib/subtree/meson.build\n> @@ -12,8 +12,12 @@ git_subtree = custom_target(\n>    install_dir: get_option('libexecdir') / 'git-core',\n>  )\n>  \n> -subtree_test_environment = test_environment\n> -subtree_test_environment.prepend('PATH', meson.current_build_dir())\n> +if get_option('tests')\n> +  subtree_test_environment = test_environment\n> +  subtree_test_environment.prepend('PATH', meson.current_build_dir())\n> +else\n> +  subtree_test_environment = environment()\n> +endif\n>  \n>  test('t7900-subtree', shell,\n>    args: [ 't7900-subtree.sh' ],\n\nThanks for the fix! I think it doesn't quite go far enough though, does\nit? I would have expected us to completely disable tests in case we have\n`!get_option(\"tests\")`, e.g. like the below patch.\n\nI see this patch has already been merged to `next` though, so we'd have\nto send a follow-up fix that builds on top of it. Do you want to do it\nor shall I send this patch?\n\nThanks!\n\nPatrick\n\ndiff --git a/contrib/credential/netrc/meson.build b/contrib/credential/netrc/meson.build\nindex a990dbb86da..3d74547c8ae 100644\n--- a/contrib/credential/netrc/meson.build\n+++ b/contrib/credential/netrc/meson.build\n@@ -7,14 +7,16 @@ credential_netrc = custom_target(\n   install_dir: get_option('libexecdir') / 'git-core',\n )\n \n-credential_netrc_testenv = test_environment\n-credential_netrc_testenv.set('CREDENTIAL_NETRC_PATH', credential_netrc.full_path())\n+if get_option('tests')\n+  credential_netrc_testenv = test_environment\n+  credential_netrc_testenv.set('CREDENTIAL_NETRC_PATH', credential_netrc.full_path())\n \n-test('t-git-credential-netrc',\n-  shell,\n-  args: [ meson.current_source_dir() / 't-git-credential-netrc.sh' ],\n-  workdir: meson.current_source_dir(),\n-  env: credential_netrc_testenv,\n-  depends: test_dependencies + bin_wrappers + [credential_netrc],\n-  timeout: 0,\n-)\n+  test('t-git-credential-netrc',\n+    shell,\n+    args: [ meson.current_source_dir() / 't-git-credential-netrc.sh' ],\n+    workdir: meson.current_source_dir(),\n+    env: credential_netrc_testenv,\n+    depends: test_dependencies + bin_wrappers + [credential_netrc],\n+    timeout: 0,\n+  )\n+endif\ndiff --git a/contrib/subtree/meson.build b/contrib/subtree/meson.build\nindex 9c72b236259..63714166a61 100644\n--- a/contrib/subtree/meson.build\n+++ b/contrib/subtree/meson.build\n@@ -12,16 +12,18 @@ git_subtree = custom_target(\n   install_dir: get_option('libexecdir') / 'git-core',\n )\n \n-subtree_test_environment = test_environment\n-subtree_test_environment.prepend('PATH', meson.current_build_dir())\n+if get_option('tests')\n+  subtree_test_environment = test_environment\n+  subtree_test_environment.prepend('PATH', meson.current_build_dir())\n \n-test('t7900-subtree', shell,\n-  args: [ 't7900-subtree.sh' ],\n-  env: subtree_test_environment,\n-  workdir: meson.current_source_dir() / 't',\n-  depends: test_dependencies + bin_wrappers + [ git_subtree ],\n-  timeout: 0,\n-)\n+  test('t7900-subtree', shell,\n+    args: [ 't7900-subtree.sh' ],\n+    env: subtree_test_environment,\n+    workdir: meson.current_source_dir() / 't',\n+    depends: test_dependencies + bin_wrappers + [ git_subtree ],\n+    timeout: 0,\n+  )\n+endif\n \n if get_option('docs').contains('man')\n   subtree_xml = custom_target(\n\n"}]}