Bug#1042250: bup: FTBFS: dh_auto_test: error: make -j8 test "TESTSUITEFLAGS=-j8 --verbose" VERBOSE=1 returned exit code 2

2023-07-30 Thread Robert Edmonds
It looks like this is a brittle unit test.

Lucas Nussbaum wrote:
> > Failures:
> > ! /<>/test/ext/test-help:35  '1' = '0'  FAILED

This line is:

WVPASSEQ 1 $(bup help save | head -1 | grep -cF 'bup-save(1)')

The hyphen in the grep expression "bup-save(1)" in the unit test is the
ordinary ASCII character 45:

ASCII 2/13 is decimal 045, hex 2d, octal 055, bits 00101101: prints as `-'
Official name: Hyphen
Other names: Dash, Minus, Worm

That matches the output of "bup help save | head -1" in the C locale:

root@8f8c3e4ea090:/# LC_ALL=C LANG=C bup help save | head -1 | hd
troff::5: warning: cannot select font 'CB'
troff::152: warning: cannot select font 'C'
   vv
  62 75 70 2d 73 61 76 65  28 31 29 20 20 20 20 20  |bup-save(1)
 |
   ^^
0010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |   
 |
*
0070  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 62  |   
b|
0080  75 70 2d 73 61 76 65 28  31 29 0a |up-save(1).|
008b
root@8f8c3e4ea090:/#

> The full build log is available from:
> http://qa-logs.debian.net/2023/07/26/bup_0.33.2-1_unstable.log

User Environment


[…]
LANG=C.UTF-8
LC_ALL=C.UTF-8
[…]

However, with a UTF-8 locale I see the hyphen being encoded as the byte
sequence 0xE2 0x80 0x90:

root@8f8c3e4ea090:/# LC_ALL=C.UTF-8 LANG=C.UTF-8 bup help save | head -1 | 
hd
troff::5: warning: cannot select font 'CB'
troff::152: warning: cannot select font 'C'
   
  62 75 70 e2 80 90 73 61  76 65 28 31 29 20 20 20  |bup...save(1)  
 |
   
0010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |   
 |
*
0080  20 62 75 70 e2 80 90 73  61 76 65 28 31 29 0a | 
bup...save(1).|
008f
root@8f8c3e4ea090:/#

Which is the UTF-8 encoding of the Unicode character U+2010 'HYPHEN'.

So I guess the bup unit tests should probably set LANG/LC_ALL explicitly.

Thanks!

-- 
Robert Edmonds
edmo...@debian.org



Bug#1042250: bup: FTBFS: dh_auto_test: error: make -j8 test "TESTSUITEFLAGS=-j8 --verbose" VERBOSE=1 returned exit code 2

2023-07-26 Thread Lucas Nussbaum
Source: bup
Version: 0.33.2-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20230726 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> make[1]: Entering directory '/<>'
> mkdir test/tmp
> ./pylint
> ./pylint: doing nothing (pylint not found)
> ! bup version  # Ensure we can't test the local bup (cf. dev/shadow-bin)
> error: something ran "bup"; bup imposter intentionally failing
> ./bup features
> bup 0.33.2
> Source 0dc9aa2a90ad06d57df2ede736587746135de30f 2023-07-01 18:52:45 -0400
> Python: 3.11.4
> Command line editing (e.g. bup ftp): yes
> Saving and restoring POSIX ACLs: yes
> Saving and restoring extended attributes (xattrs): yes
> if test yes = "$(dev/python -c 'import xdist; print("yes")' 2>/dev/null)"; 
> then \
>(set -x; ./pytest -n8;) \
> else \
>   (set -x; ./pytest;) \
> fi
> + ./pytest -n8
> = test session starts 
> ==
> platform linux -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0 -- 
> /<>/dev/bup-python
> cachedir: .pytest_cache
> rootdir: /<>
> configfile: pytest.ini
> testpaths: test/int, test/ext
> plugins: xdist-3.3.1
> created: 8/8 workers
> 8 workers [128 items]
> 
> scheduling tests via LoadScheduling
> 
> test/ext/test-meta-acls:: 
> test/ext/test-ls:: 
> test/ext/test-index-check-device:: 
> test/ext/test-help:: 
> test/ext/test-drecurse:: 
> test/ext/test-cat-file:: 
> test/ext/test_get.py::test_get[get-pick_force] 
> test/ext/test_get.py::test_get[get-replace] 
> [gw5] [  0%] SKIPPED test/ext/test-index-check-device:: 
> test/ext/test-index-clear:: 
> [gw4] [  1%] FAILED test/ext/test-help:: 
> test/ext/test-import-duplicity:: 
> [gw4] [  2%] SKIPPED test/ext/test-import-duplicity:: 
> test/ext/test-import-rdiff-backup:: 
> [gw4] [  3%] SKIPPED test/ext/test-import-rdiff-backup:: 
> test/ext/test-index:: 
> [gw3] [  3%] PASSED test/ext/test-drecurse:: 
> test/ext/test-fsck:: 
> [gw2] [  4%] PASSED test/ext/test-cat-file:: 
> test/ext/test-command-without-init-fails:: 
> [gw7] [  5%] PASSED test/ext/test-meta-acls:: 
> test/ext/test-misc:: 
> [gw2] [  6%] PASSED test/ext/test-command-without-init-fails:: 
> test/ext/test-comparative-split-join:: 
> [gw2] [  7%] SKIPPED test/ext/test-comparative-split-join:: 
> test/ext/test-compression:: 
> [gw5] [  7%] PASSED test/ext/test-index-clear:: 
> test/ext/test-index-save-type-change:: 
> [gw2] [  8%] PASSED test/ext/test-compression:: 
> test/ext/test-rm-between-index-and-save:: 
> [gw6] [  9%] PASSED test/ext/test-ls:: 
> test/ext/test-ls-remote:: 
> [gw5] [ 10%] PASSED test/ext/test-index-save-type-change:: 
> test/ext/test-list-idx:: 
> [gw5] [ 10%] PASSED test/ext/test-list-idx:: 
> test/ext/test-save-restore:: 
> [gw3] [ 11%] PASSED test/ext/test-fsck:: 
> test/ext/test-fuse:: 
> [gw3] [ 12%] PASSED test/ext/test-fuse:: 
> test/ext/test-gc:: 
> [gw7] [ 13%] PASSED test/ext/test-misc:: 
> test/ext/test-on:: 
> [gw7] [ 14%] PASSED test/ext/test-on:: 
> test/ext/test-packsizelimit:: 
> [gw2] [ 14%] PASSED test/ext/test-rm-between-index-and-save:: 
> test/ext/test-save-creates-no-unrefs:: 
> [gw7] [ 15%] PASSED test/ext/test-packsizelimit:: 
> test/ext/test-tz:: 
> [gw7] [ 16%] PASSED test/ext/test-tz:: 
> test/ext/test-web:: 
> [gw5] [ 17%] PASSED test/ext/test-save-restore:: 
> test/ext/test-save-restore-excludes:: 
> [gw7] [ 17%] SKIPPED test/ext/test-web:: 
> test/ext/test-xdev:: 
> [gw7] [ 18%] SKIPPED test/ext/test-xdev:: 
> test/ext/test_argv.py::test_argv 
> [gw2] [ 19%] PASSED test/ext/test-save-creates-no-unrefs:: 
> test/ext/test-save-data-race:: 
> [gw2] [ 20%] PASSED test/ext/test-save-data-race:: 
> test/ext/test-save-errors:: 
> [gw7] [ 21%] PASSED test/ext/test_argv.py::test_argv 
> test/ext/test_ftp.py::test_ftp 
> [gw6] [ 21%] PASSED test/ext/test-ls-remote:: 
> test/ext/test-main:: 
> [gw6] [ 22%] PASSED test/ext/test-main:: 
> test/ext/test-meta:: 
> [gw7] [ 23%] PASSED test/ext/test_ftp.py::test_ftp 
> test/ext/test_prune_older.py::test_prune_older 
> [gw2] [ 24%] PASSED test/ext/test-save-errors:: 
> test/int/test_client.py::test_server_split_with_indexes 
> [gw2] [ 25%] PASSED test/int/test_client.py::test_server_split_with_indexes 
> test/int/test_client.py::test_multiple_suggestions 
> [gw2] [ 25%] PASSED test/int/test_client.py::test_multiple_suggestions 
> test/int/test_client.py::test_dumb_client_server 
> [gw2] [ 26%] PASSED test/int/test_client.py::test_dumb_client_server 
> test/int/test_git.py::test_git_version_detection 
> [gw2] [ 27%] PASSED test/int/test_git.py::test_git_version_detection 
> test/int/test_git.py::test_mangle 
> [gw2] [ 28%] PASSED test/int/test_git.py::test_mangle 
> test/int/test_git.py::test_encode 
> [gw2] [ 28%] PASSED test/int/test_git.py::test_encode 
> test/int/test_git.py::test_packs 
> [gw2] [ 29%] PASSED test/int/test_git.py::test_packs 
>