Tuesday 20 December 2022

Re: Run Focal i386 autopkgtests locally

Hey Steve, Julian,

I was reading again those steps Christian shared a while ago and noticed the current archive autopkgtest version still doesn't implement the '-a' option.
It seems https://code.launchpad.net/~ubuntu-release/autopkgtest/+git/development/+merge/376169 got an ack 3 years ago, is there anything blocking the merge?

I've added the notes on https://wiki.ubuntu.com/ProposedMigration#How_do_we_debug_i386_issues because it's not the first time I have to figure that again and it's probably the same for others. It would be nice it things working with the archive version of autopkgtest

Cheers,
Sebastien

Le 06/02/2020 à 16:37, Christian Ehrhardt a écrit :
Hi,
The i386 removal works great and after the dust settled it comes mostly down to adding a few more hints in recent weeks. But sometimes there are i386 tests that are valid to run, but fail and need debugging.

If you happen to face such a case the old common pattern won't work anymore:

$ sudo autopkgtest-buildvm-ubuntu-cloud -a i386 -r bionic -s 15G
$ sudo ~/work/autopkgtest/autopkgtest/runner/autopkgtest <YOUR>.dsc \
  -- qemu ~/work/autopkgtest-focal-amd64.img

The above was fine in the past, but with Focal you that won't work due to:
$ sudo autopkgtest-buildvm-ubuntu-cloud -a i386 -r focal -s 15G
Downloading https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-i386.img...
No image exists for this release/architecture

Steve was so kind to help me with the case I was facing and after a bit I learned how to locally run my i386 tests in a VM and wanted to share that with you.

First of all, you probably need a more recent autopkgtest to get the features you need.
So you need to clone git and run it from there.

$ git clone git+ssh://paelzer@git.launchpad.net/~ubuntu-release/autopkgtest/+git/development
[for me that is in ~/work/autopkgtest/autopkgtest]

And then - since you only have amd64 images - to run it you have to add
# to select the architecture for the test
  -a i386
# to get the arch available in the test env before the testing starts
  --setup-commands="dpkg --add-architecture i386; apt-get update"

Overall for me it then worked like:
$ sudo ~/work/autopkgtest/autopkgtest/runner/autopkgtest <YOUR>.dsc \
  --setup-commands="dpkg --add-architecture i386; apt-get update" -a i386 \
  -- qemu ~/work/autopkgtest-focal-amd64.img

I hope this helps some other people as well.
And if anyone knows more tweaks to get this local i386 test to run even better please reply and let us all know.

P.S. of course my commandline never is that simple, the above is just for illustration.
In reality it was more like:
$ sudo ~/work/autopkgtest/autopkgtest/runner/autopkgtest --no-built-binaries --apt-upgrade --apt-pocket=proposed=src:re2c --setup-commands="dpkg --add-architecture i386; apt-get update" --shell-fail -a i386 re2c_1.3-1.dsc -- qemu --qemu-options='-cpu host' --ram-size=2048 --cpus 2 ~/work/autopkgtest-focal-amd64.img

--
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd