So the sample code from comment #1 was wrong.

## Expected

```
File: base64
 H4sICAAAAAAC/0ZpbGUA
 c3RyxIAMcBAFAK/2p9MfAAAA
```

```
$ python3 -c "import base64, pathlib; 
pathlib.Path('file.gz').write_bytes(base64.b64decode('H4sICAAAAAAC/0ZpbGUA') + 
base64.b64decode('c3RyxIAMcBAFAK/2p9MfAAAA'))"
$ hd file.gz
00000000  1f 8b 08 08 00 00 00 00  02 ff 46 69 6c 65 00 73  |..........File.s|
00000010  74 72 c4 80 0c 70 10 05  00 af f6 a7 d3 1f 00 00  |tr...p..........|
00000020  00                                                |.|
$ gunzip file.gz
$ hd file
00000000  41 42 41 42 41 42 41 42  41 42 41 42 41 42 41 42  |ABABABABABABABAB|
00000010  41 42 41 42 00 00 00 00  00 00 00 00 00 00 5a     |ABAB..........Z|
0000001f
```

## Got

```
File: base64
 H4sICAAAAAAC/0ZpbGUA
 cnTChAxwEA==
 BRgAr/an0x8AAAA=
```

```
$ python3 -c "import base64, pathlib; 
pathlib.Path('file.gz').write_bytes(base64.b64decode('H4sICAAAAAAC/0ZpbGUA') + 
base64.b64decode('cnTChAxwEA==') + base64.b64decode('BRgAr/an0x8AAAA='))"$ hd 
file.gz
00000000  1f 8b 08 08 00 00 00 00  02 ff 46 69 6c 65 00 72  |..........File.r|
00000010  74 c2 84 0c 70 10 05 18  00 af f6 a7 d3 1f 00 00  |t...p...........|
00000020  00                                                |.|
00000021
$ gunzip file.gz
$ hd file
00000000  41 42 41 42 41 42 41 42  41 42 41 42 41 42 41 42  |ABABABABABABABAB|
00000010  41 42 41 42 00 00 00 00  00 00 00 00 00 00 5a     |ABAB..........Z|
0000001f
```

The raw data is identical, but the zlib compressed raw data differs! So
the apport autopkgtest is too picky here.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apport in Ubuntu.
https://bugs.launchpad.net/bugs/2076269

Title:
  invalid base64 encoded gzip data on s390x causes autopkgtest failures

Status in Ubuntu on IBM z Systems:
  New
Status in apport package in Ubuntu:
  New
Status in python3.12 package in Ubuntu:
  New

Bug description:
  The following tests all fail with an encoding/decoding issue:

  tests/unit/test_problem_report.py::T:test_modify
  
tests/unit/test_report.py::T::test_report_from_systemd_coredump_storage_journal
  tests/integration/test_problem_report::T::test_write_file

  Example failure:

  564s =================================== FAILURES 
===================================
  564s ________________________________ T.test_modify 
_________________________________
  564s
  564s self = <tests.unit.test_problem_report.T testMethod=test_modify>
  564s
  564s     def test_modify(self):
  564s         """reading, modifying fields, and writing back."""
  564s         report = textwrap.dedent(
  564s             """\
  564s             ProblemType: Crash
  564s             Date: now!
  564s             Long:
  564s              xxx
  564s              .
  564s              yyy
  564s             Short: Bar
  564s             File: base64
  564s              H4sICAAAAAAC/0ZpbGUA
  564s              c3RyxIAMcBAFAK/2p9MfAAAA
  564s             """
  564s         ).encode()
  564s
  564s         pr = problem_report.ProblemReport()
  564s         pr.load(io.BytesIO(report))
  564s
  564s         self.assertEqual(pr["Long"], "xxx\n.\nyyy")
  564s
  564s         # write back unmodified
  564s         out = io.BytesIO()
  564s         pr.write(out)
  564s >       self.assertEqual(out.getvalue(), report)
  564s E       AssertionError: b'Pro[73 chars]e64\n H4sICAAAAAAC/0ZpbGUA\n 
cnTChAxwEA==\n BRgAr/an0x8AAAA=\n' != b'Pro[73 chars]e64\n 
H4sICAAAAAAC/0ZpbGUA\n c3RyxIAMcBAFAK/2p9MfAAAA\n'
  564s
  564s tests/unit/test_problem_report.py:509: AssertionError

  Autopkgtest noble log: 
https://autopkgtest.ubuntu.com/results/autopkgtest-noble/noble/s390x/a/apport/20240807_023039_8850a@/log.gz
  oracular log: 
https://autopkgtest.ubuntu.com/results/autopkgtest-oracular/oracular/s390x/a/apport/20240805_132135_d3a80@/log.gz

  This failure was seen on noble (log above) but also on oracular.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/2076269/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to