
Bug: 41489832 Change-Id: I1dbbb744be749f314dea32d9cf01da0e4a9390ad Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5569801 Auto-Submit: Takuto Ikuta <tikuta@chromium.org> Reviewed-by: Richard Wang <richardwa@google.com> Commit-Queue: Richard Wang <richardwa@google.com> Cr-Commit-Position: refs/heads/main@{#1306295}
3.0 KiB
Using a chroot
If you want to run web tests and you're not running Lucid, you'll get errors due to version differences in libfreetype. To work around this, you can use a chroot.
Basic Instructions
- Run
build/install-chroot.sh
. On the prompts, choose to install a 64-bit Lucid chroot and activate all your secondary mount points. - sudo edit
/etc/schroot/mount-lucid64bit
and uncomment/run
and/run/shm
. Verify that your mount points are correct and uncommented: for example, if you have a second hard drive at/src
, you should have an entry like/src /src none rw,bind 0 0
. - Enter your chroot as root with
sudo schroot -c lucid64
. Runbuild /install-build-deps.sh
, then exit the rooted chroot. - Delete your out/ directory if you had a previous non-chrooted build.
- To enter your chroot as normal user, run
schroot -c lucid64
. - Now compile and run DumpRenderTree within chroot.
Tips and Tricks
NFS home directories
The chroot install will be installed by default in /home/$USER/chroot. If your
home directory is inaccessible by root (typically because it is mounted on NFS),
then move this directory onto your local disk and change the corresponding entry
in /etc/schroot/mount-lucid64bit
.
Reclient builds
If you get mysterious compile errors (glibconfig.h or dbus header error), don't use reclient for builds inside the chroot.
Different color prompt
I use the following code in my .zshrc file to change the color of my prompt in the chroot.
# load colors
autoload colors zsh/terminfo
if [[ "$terminfo[colors]" -ge 8 ]]; then
colors
fi
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
done
PR_NO_COLOR="%{$terminfo[sgr0]%}"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
if [ "xlucid64" = "x$debian_chroot" ]; then
PS1="%n@$PR_GREEN% lucid64$PR_NO_COLOR %~ %#"
else
PS1="%n@$PR_RED%m$PR_NO_COLOR %~ %#"
fi
Running X apps
I also have DISPLAY=:0
in my $debian_chroot
section so I can run test_shell
or web tests without manually setting my display every time. Your display
number may vary (echo $DISPLAY
outside the chroot to see what your display
number is).
You can also use Xvfb
if you only want to
run tests headless.
Having web test results open in a browser
After running web tests, you should get a new browser tab or window that opens results.html. If you get an error "Failed to open file:///path/to/results.html, check the following conditions.
- Make sure
DISPLAY
is set. See the Running X apps section above. - Install
xdg-utils
, which includesxdg-open
, a utility for finding the right application to open a file or URL with. - Install Chrome.