Add architecture argument for the buildroot chroot (#832)

* Add architecture argument for the buildroot chroot, defaults to device architecture
* Output pmbootstrap log file after failure to debug Travis failure
* Travis: disable timestamp based rebuilds
This commit is contained in:
drebrez 2017-10-28 02:45:15 +02:00 committed by Oliver Smith
parent a3c1e22dd9
commit 9c1ef821b3
4 changed files with 28 additions and 3 deletions

View File

@ -11,10 +11,13 @@ install: "pip install flake8 pytest-cov python-coveralls"
script:
- test/static_code_analysis.sh
- yes "" | ./pmbootstrap.py init
- ./pmbootstrap.py config timestamp_based_rebuild False
- ./pmbootstrap.py kconfig_check
- test/testcases_fast.sh
- test/check_checksums.py
after_success:
- coveralls
after_failure:
- cat ~/.local/var/pmbootstrap/log.txt
notifications:
- email: false

View File

@ -68,7 +68,10 @@ def _parse_suffix(args):
if "rootfs" in args and args.rootfs:
return "rootfs_" + args.device
elif args.buildroot:
return "buildroot_" + args.deviceinfo["arch"]
if args.buildroot == "device":
return "buildroot_" + args.deviceinfo["arch"]
else:
return "buildroot_" + args.buildroot
elif args.suffix:
return args.suffix
else:

View File

@ -192,8 +192,9 @@ def arguments():
if action == chroot:
suffix.add_argument("-r", "--rootfs", action="store_true",
help="Chroot for the device root file system")
suffix.add_argument("-b", "--buildroot", action="store_true",
help="Chroot for building packages for the device "
suffix.add_argument("-b", "--buildroot", nargs="?", const="device",
choices={"device"} | arch_choices,
help="Chroot for building packages, defaults to device "
"architecture")
suffix.add_argument("-s", "--suffix", default=None,
help="Specify any chroot suffix, defaults to"

View File

@ -30,3 +30,21 @@ def test_chroot_interactive_shell():
input="echo hello_world\n", universal_newlines=True,
stderr=subprocess.STDOUT)
assert ret == "hello_world\n"
def test_chroot_arguments():
"""
Open a shell with 'pmbootstrap chroot' for every architecture, pass 'uname -m\n'
as stdin and check the output
"""
pmb_src = os.path.realpath(os.path.join(os.path.dirname(__file__) + "/.."))
os.chdir(pmb_src)
for arch in ["armhf", "aarch64", "x86_64"]:
ret = subprocess.check_output(["./pmbootstrap.py", "-q", "chroot", "-b", arch],
timeout=300, input="uname -m\n",
universal_newlines=True, stderr=subprocess.STDOUT)
if arch == "armhf":
assert ret == "armv7l\n"
else:
assert ret == arch + "\n"