Skip to content

bug: failing tests on non-English locale #2196

@dolmen

Description

@dolmen

Describe the Bug

Testsuite is failing when running on a non-English locale such as fr_FR.UTF-8.

The bug is that a few tests rely on the output of external commands (bash, git) which have locale-dependent output.

Steps to Reproduce

On MacOS:

$ LANG=fr_FR.UTF-8 go test -trimpath -count=1 ./...
?   	github.com/asdf-vm/asdf/internal/cli	[no test files]
?   	github.com/asdf-vm/asdf/internal/installtest	[no test files]
?   	github.com/asdf-vm/asdf/internal/repotest	[no test files]
ok  	github.com/asdf-vm/asdf/cmd/asdf	98.400s
ok  	github.com/asdf-vm/asdf/internal/cli/set	0.183s
ok  	github.com/asdf-vm/asdf/internal/completions	0.293s
ok  	github.com/asdf-vm/asdf/internal/config	0.668s
ok  	github.com/asdf-vm/asdf/internal/data	0.810s
ok  	github.com/asdf-vm/asdf/internal/exec	1.400s
ok  	github.com/asdf-vm/asdf/internal/execenv	1.521s
--- FAIL: TestRun_Command (0.07s)
    --- FAIL: TestRun_Command/command_is_executed_with_bash (0.01s)
        execute_test.go:38: 
            	Error Trace:	github.com/asdf-vm/asdf/internal/execute/execute_test.go:38
            	Error:      	"sh est /bin/sh\n" does not contain "sh is /"
            	Test:       	TestRun_Command/command_is_executed_with_bash
--- FAIL: TestRun_Expression (0.03s)
    --- FAIL: TestRun_Expression/expression_is_executed_with_bash (0.01s)
        execute_test.go:140: 
            	Error Trace:	github.com/asdf-vm/asdf/internal/execute/execute_test.go:140
            	Error:      	"sh est /bin/sh\n" does not contain "sh is /"
            	Test:       	TestRun_Expression/expression_is_executed_with_bash
FAIL
FAIL	github.com/asdf-vm/asdf/internal/execute	0.901s
--- FAIL: TestRepoClone (0.82s)
    --- FAIL: TestRepoClone/when_repo_name_is_valid_but_URL_is_invalid_prints_an_error (0.02s)
        git_test.go:19: 
            	Error Trace:	github.com/asdf-vm/asdf/internal/git/git_test.go:19
            	Error:      	Error "unable to clone plugin: fatal\u00a0: le dépôt 'foobar' n'existe pas" does not contain "unable to clone plugin: fatal: repository 'foobar' does not exist"
            	Test:       	TestRepoClone/when_repo_name_is_valid_but_URL_is_invalid_prints_an_error
    --- FAIL: TestRepoClone/when_repo_name_and_URL_are_valid_but_ref_is_invalid_prints_an_error (0.29s)
        git_test.go:46: 
            	Error Trace:	github.com/asdf-vm/asdf/internal/git/git_test.go:46
            	Error:      	Error "unable to clone plugin: fatal\u00a0: La branche distante non-existent n'a pas été trouvée dans le dépôt amont origin" does not contain "unable to clone plugin: fatal: Remote branch non-existent not found in upstream origin"
            	Test:       	TestRepoClone/when_repo_name_and_URL_are_valid_but_ref_is_invalid_prints_an_error
--- FAIL: TestRepoUpdate (1.01s)
    --- FAIL: TestRepoUpdate/Returns_error_when_specified_ref_does_not_exist (0.05s)
        git_test.go:192: 
            	Error Trace:	github.com/asdf-vm/asdf/internal/git/git_test.go:192
            	Error:      	Error "fatal\u00a0: impossible de trouver la référence distante non-existent" does not contain "fatal: couldn't find remote ref non-existent"
            	Test:       	TestRepoUpdate/Returns_error_when_specified_ref_does_not_exist
FAIL
FAIL	github.com/asdf-vm/asdf/internal/git	2.955s
ok  	github.com/asdf-vm/asdf/internal/help	2.876s
ok  	github.com/asdf-vm/asdf/internal/hook	0.389s
ok  	github.com/asdf-vm/asdf/internal/info	0.453s
ok  	github.com/asdf-vm/asdf/internal/installs	2.011s
ok  	github.com/asdf-vm/asdf/internal/paths	0.547s
ok  	github.com/asdf-vm/asdf/internal/pluginindex	1.212s
plugin add path=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestList153485190/001/plugins/lua source_url=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestList153485190/001/fixtures/lua
plugin add path=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestAdd1317284564/001/plugins/lua source_url=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestAdd1317284564/001/fixtures/lua
plugin add path=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestAddwhen_plugin_name_and_URL_are_valid_installs_plugin2016635833/001/plugins/lua source_url=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestAddwhen_plugin_name_and_URL_are_valid_installs_plugin2016635833/001/fixtures/lua
plugin add path=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestAddwhen_parameters_are_valid_creates_plugin_download_dir3056471117/001/plugins/lua source_url=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestAddwhen_parameters_are_valid_creates_plugin_download_dir3056471117/001/fixtures/lua
--- FAIL: TestAdd (1.92s)
    --- FAIL: TestAdd/when_plugin_name_is_valid_but_URL_is_invalid_prints_an_error (0.01s)
        plugins_test.go:132: 
            	Error Trace:	github.com/asdf-vm/asdf/internal/plugins/plugins_test.go:132
            	Error:      	Error "unable to clone plugin: fatal\u00a0: le dépôt 'foobar' n'existe pas" does not contain "unable to clone plugin: fatal: repository 'foobar' does not exist"
            	Test:       	TestAdd/when_plugin_name_is_valid_but_URL_is_invalid_prints_an_error
plugin add path=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestRemove464024313/001/plugins/lua source_url=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestRemove464024313/001/fixtures/lua
plugin add path=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestRemove464024313/001/plugins/lua source_url=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestRemove464024313/001/fixtures/lua
plugin add path=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestUpdate989443708/001/plugins/lua source_url=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestUpdate989443708/001/fixtures/lua
plugin add path=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestUpdate989443708/001/plugins/no-post-update source_url=/var/folders/7b/5rfj3bgs3tj34c6f2jy8h39w0000gn/T/TestUpdate989443708/001/fixtures/no-post-update
FAIL
FAIL	github.com/asdf-vm/asdf/internal/plugins	9.899s
ok  	github.com/asdf-vm/asdf/internal/resolve	4.258s
ok  	github.com/asdf-vm/asdf/internal/shims	11.044s
ok  	github.com/asdf-vm/asdf/internal/toolversions	0.770s
ok  	github.com/asdf-vm/asdf/internal/versions	17.767s
FAIL
$ LANG=C go test -trimpath -count=1 ./...
?   	github.com/asdf-vm/asdf/internal/cli	[no test files]
?   	github.com/asdf-vm/asdf/internal/installtest	[no test files]
?   	github.com/asdf-vm/asdf/internal/repotest	[no test files]
ok  	github.com/asdf-vm/asdf/cmd/asdf	99.604s
ok  	github.com/asdf-vm/asdf/internal/cli/set	0.722s
ok  	github.com/asdf-vm/asdf/internal/completions	0.558s
ok  	github.com/asdf-vm/asdf/internal/config	0.402s
ok  	github.com/asdf-vm/asdf/internal/data	1.009s
ok  	github.com/asdf-vm/asdf/internal/exec	1.494s
ok  	github.com/asdf-vm/asdf/internal/execenv	1.899s
ok  	github.com/asdf-vm/asdf/internal/execute	1.283s
ok  	github.com/asdf-vm/asdf/internal/git	2.619s
ok  	github.com/asdf-vm/asdf/internal/help	2.771s
ok  	github.com/asdf-vm/asdf/internal/hook	0.912s
ok  	github.com/asdf-vm/asdf/internal/info	0.986s
ok  	github.com/asdf-vm/asdf/internal/installs	2.901s
ok  	github.com/asdf-vm/asdf/internal/paths	0.916s
ok  	github.com/asdf-vm/asdf/internal/pluginindex	1.251s
ok  	github.com/asdf-vm/asdf/internal/plugins	9.878s
ok  	github.com/asdf-vm/asdf/internal/resolve	3.731s
ok  	github.com/asdf-vm/asdf/internal/shims	11.019s
ok  	github.com/asdf-vm/asdf/internal/toolversions	0.626s
ok  	github.com/asdf-vm/asdf/internal/versions	19.207s

Expected Behaviour

Testsuite pass whatever the value of the LANG environment variable.

Actual Behaviour

Failing testsuite with LANG=fr_FR.UTF-8.

Environment

LANG=fr_FR.UTF-8


$ bash --version
GNU bash, version 5.2.21(1)-release (aarch64-apple-darwin23.0.0)
Copyright (C) 2022 Free Software Foundation, Inc.
Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html>

Ceci est un logiciel libre ; vous être libre de le modifier et de le redistribuer.
AUCUNE GARANTIE n'est fournie, dans les limites permises par la loi.
$ git --version
git version 2.51.0

asdf plugins affected (if relevant)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions