aboutsummaryrefslogtreecommitdiff
path: root/misc/android
AgeCommit message (Collapse)Author
2023-05-01misc/android: rename to misc/go_android_exec, make go build workAustin Clements
This makes it reasonable to "go build" from this directory by changing the name of the directory to a more reasonable name for the binary and dropping the unnecessary "ignore" build tag. The resulting binary doesn't *quite* have the necessary name for a Go exec wrapper because that needs to have the form, go_android_$GOARCH_exec, but it's close. Change-Id: I036cb1af9c034462a952b176a794526fa3ffd1ab Reviewed-on: https://go-review.googlesource.com/c/go/+/490495 Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Austin Clements <austin@google.com> Auto-Submit: Austin Clements <austin@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2023-04-28misc/android: rework GOROOT installationBryan C. Mills
- Fall back to 'go env GOROOT' to locate GOROOT if runtime.GOROOT() is empty (as may be the case if the tool is built with -trimpath). - Copy all of $GOROOT/android_$GOARCH/bin, not just cmd/go, to $GOROOT/bin. - For consistency with CL 404134, place $GOROOT/bin at the beginning of $PATH, not the end. - Don't use the install target for the "runtime" package to locate pkg/tool. As of Go 1.20 "runtime" doesn't have an install directory anyway. Since the real reason we need pkg/tool is for commands in "cmd", use an arbitrary command (namely "cmd/compile") to locate it. - Use 'go list' to determine the package import path for the current directory, instead of assuming that it is within GOROOT or GOPATH. (That assumption does not hold in module mode.) Updates #58775. Change-Id: If76ff22bce76d05175c40678230f046a4aff0940 Reviewed-on: https://go-review.googlesource.com/c/go/+/472096 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Bryan Mills <bcmills@google.com> Reviewed-by: Changkun Ou <mail@changkun.de> Auto-Submit: Bryan Mills <bcmills@google.com>
2022-09-06misc: use strings.Buildercuiweixie
Change-Id: Icb53d32f2de13287b1b4f4f67dab90fe5ee7a3df Reviewed-on: https://go-review.googlesource.com/c/go/+/428254 Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Ian Lance Taylor <iant@google.com>
2021-08-13all: gofmt more (but vendor, testdata, and top-level test directories)Dmitri Shuralyov
CL 294430 made packages in std and cmd modules use Go 1.17 gofmt format, adding //go:build lines. This change applies the same formatting to some more packages that 'go fmt' missed (e.g., syscall/js, runtime/msan), and everything else that is easy and safe to modify in bulk. Consider the top-level test directory, testdata, and vendor directories out of scope, since there are many files that don't follow strict gofmt formatting, often for intentional and legitimate reasons (testing gofmt itself, invalid Go programs that shouldn't crash the compiler, etc.). That makes it easy and safe to gofmt -w the .go files that are found with gofmt -l with aforementioned directories filtered out: $ gofmt -l . 2>/dev/null | \ grep -v '^test/' | \ grep -v '/testdata/' | \ grep -v '/vendor/' | wc -l 51 None of the 51 files are generated. After this change, the same command prints 0. For #41184. Change-Id: Ia96ee2a0f998d6a167d4473bcad17ad09bc1d86e Reviewed-on: https://go-review.googlesource.com/c/go/+/341009 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Trust: Dmitri Shuralyov <dmitshur@golang.org>
2021-04-05all: update references to symbols moved from io/ioutil to ioKimMachineGun
Update references missed in CL 263142. For #41190 Change-Id: I778760a6a69bd0440fec0848bdef539c9ccb4ee1 GitHub-Last-Rev: dda42b09fff36dc08ec1cdec50cc19e3da5058e5 GitHub-Pull-Request: golang/go#42874 Reviewed-on: https://go-review.googlesource.com/c/go/+/273946 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Trust: Cherry Zhang <cherryyz@google.com>
2019-05-17misc/android: fix a typo in READMEBen Shi
A cross C compiler should be specified when cross building go for android on x86 host. This CL fixes the typo in README. Change-Id: Ideda915364d9f7f0fcd53146abc1e74506a8a8e6 Reviewed-on: https://go-review.googlesource.com/c/go/+/177777 Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Elias Naur <mail@eliasnaur.com>
2019-05-09misc/android: silence adb output unless an error occursElias Naur
Fixes #31917 Change-Id: I794e457b2245d355e2df5077078c67aa09e00ff9 Reviewed-on: https://go-review.googlesource.com/c/go/+/175920 Run-TryBot: Elias Naur <mail@eliasnaur.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-03-21misc/android: pass on GOPROXY to device environmentElias Naur
Android devices don't have git available, so many go tool commands that fetch dependencies fail. Builders already have a GOPROXY available, so pass that along to the device environment. Updates #30885 Change-Id: Id0d2338932f0cd7de4d95d9e0ca9b79d29336ffe Reviewed-on: https://go-review.googlesource.com/c/go/+/168118 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-15misc/android: copy go.mod and go.sum filesElias Naur
Fixes TestFindStdlib in x/tools on android. Change-Id: I2da7c702164e23488c7f9574f636ac36f63ab421 Reviewed-on: https://go-review.googlesource.com/c/go/+/167799 Run-TryBot: Elias Naur <mail@eliasnaur.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-12misc/android: fix detection of GOROOT testsElias Naur
strings.HasPrefix is not good enough to determine whether a path is a subdirectory of another because it does not respect path boundaries. filepath.Rel is good eonugh as long as we filter out results that use parent directories, "..". Hopefully fix the android emulator builders on the subrepositories. Change-Id: I17ee7e0028c0b0b26a6c5f67629f53c9a660c6e5 Reviewed-on: https://go-review.googlesource.com/c/go/+/167117 Run-TryBot: Elias Naur <mail@eliasnaur.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-03-11misc/android: copy less from GOROOT to the deviceElias Naur
The android emulator builders is running out of space after CL 165797 copied most of GOROOT to the device. The pkg directory is by far the largest, so only include what seems necessary to build the x/ repositories: pkg/android_$GOARCH and pkg/tool/android_$GOARCH. While here, rename the device root directory to match the exec wrapper name and make sure the deferred cleanups actually run before os.Exit. Hopefully fixes the emulator builders. Updates #23824 Change-Id: I4d1e3ab2c89fd1e5818503d323ddb87f073094da Reviewed-on: https://go-review.googlesource.com/c/go/+/166397 Run-TryBot: Elias Naur <mail@eliasnaur.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-08misc/android: enable many more tests on GOOS=androidElias Naur
Android tests are built on the host and run on the device. To do that, the exec wrapper copies the test binary and testdata to the device. To enable many more tests, make the copied environment more like the host: - Copy all of pkg from GOROOT, not just the android pkg directory. - Copy any parent testdata directories as well as the package's own. - Copy *.go files from the package directory. This enables misc/cgo/stdio and misc/cgo/life tests that were invisible before so disable them explicitly. - Always copy the GOROOT, even for tests outside GOROOT. This is expensive but only done once per make.bash. - Build the go tool for the device and put it in PATH. Set GOCACHE to a writable directory and disable cgo. While here, use a single directory for all the exec wrapper files and delete that once per make.bash as well. In total, this CL enables many tests in the subrepos that would need skips without it, in particular the x/tools tests. Fixes #11452 Updates #23824 Updates #11811 Change-Id: I2e50d8b57db9bc4637f25272a5360c8b2cf4e627 Reviewed-on: https://go-review.googlesource.com/c/go/+/165797 Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-02misc/android: use adb exec-out instead of adb shell to avoid bufferingElias Naur
According to https://stackoverflow.com/questions/46233200/stop-buffering-of-adb-shell-output the adb exec-out commands avoids the buffering inherent to adb shell. Let's see if using exec-out will fix the android builder flakyness where exitcodes or output were sometimes missing. Updates #30512 (perhaps fixes it). Change-Id: Ib953ef0262b20730e0d4c332058d29c5066bfeb2 Reviewed-on: https://go-review.googlesource.com/c/164661 Run-TryBot: Elias Naur <mail@eliasnaur.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-01androidtest.bash: deleteElias Naur
Android now works with all.bash. Change-Id: I1087308865d2eb31f02501b5798e14d11145b185 Reviewed-on: https://go-review.googlesource.com/c/164700 Run-TryBot: Elias Naur <mail@eliasnaur.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-01misc/android,misc/ios: evaluate current working directory symlinksElias Naur
Previous CLs added symlink evaulation to GOROOT and GOPATH. Unfortunately that only fixed tests that ran outside GOROOT. To fix the standard library tests, evaluate symlinks in the current working directory as well. Change-Id: Ia406a968235ae4321a1002567520105998582d15 Reviewed-on: https://go-review.googlesource.com/c/164699 Run-TryBot: Elias Naur <mail@eliasnaur.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-01misc/android: adb push --sync testdataElias Naur
(A stripped down version of) $GOROOT is uploaded to the device before running standar library tests, including many (all?) testdata directories. Use the --sync flag when pushing testdata directories to the device in case it is already present. Change-Id: If8104f9d15838c1be3623adcf831a7188303c376 Reviewed-on: https://go-review.googlesource.com/c/164338 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-01misc/android: evaluate symlinks before comparing GOROOT and GOPATHElias Naur
Should fix Android builders on Darwin hosts. Change-Id: I1554849bdf2ad2440529af7f93566fa6f11d5407 Reviewed-on: https://go-review.googlesource.com/c/164697 Run-TryBot: Elias Naur <mail@eliasnaur.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-26misc/android: copy testdata directories to device before runningElias Naur
We've got away with not copying the testdata directories for the standard library because the exec wrapper also pushes almost the entire $GOROOT tree to the device, including testdata directories. Similar to what the iOS exec wrapper does. Change-Id: I91ef63ef84a658fc8843002890132c64b7c1d20e Reviewed-on: https://go-review.googlesource.com/c/163626 Run-TryBot: Elias Naur <mail@eliasnaur.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-26misc/android: serialize adb commands on android emulatorsElias Naur
Android emulator builders are soon to join the trybot set. To avoid flaky runs, work around a longstanding adb bug where concurrent adb commands sometimes fail. I haven't seen the problem on actual devices until recently. It seems that the recently added "adb wait-for-device" can introduce flakyness with errors such as: adb: error: failed to get feature set: protocol fault (couldn't read status): Connection reset by peer Instead of working around that, give up and serialize use of adb everywhere. Fixes #23795 Updates #23824 Change-Id: If347c9981fa32ff8a1e14b7454f122ef682450a6 Reviewed-on: https://go-review.googlesource.com/c/163625 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-26misc/android,cmd/dist: move $GOROOT copying to the exec wrapperElias Naur
To run the standard library tests on Android, the androidtest.bash script copies GOROOT to the device. Move that logic to the android exec wrapper, thereby making androidtest.bash obsolete. Apart from making Android less special, the sharded builder infrastructure should now be able to run (emulated) Android builders and trybots without special treatment. Updates #23824 Change-Id: I41591fea9a15b38c6dcf84046ea57f1e9165eaa5 Reviewed-on: https://go-review.googlesource.com/c/163619 Run-TryBot: Elias Naur <mail@eliasnaur.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-24misc: wait for device readyness in the exec wrapperElias Naur
Updates #23824 Change-Id: I5472a05eb2cf571ccc84c76c6f592bf4dd2e3cb4 Reviewed-on: https://go-review.googlesource.com/c/163621 Run-TryBot: Elias Naur <mail@eliasnaur.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-02-22misc/android: add build constraints on files intended to be built by ↵Bryan C. Mills
filename only Updates #30228 Change-Id: I91a763d94de935d9102d927b5cefee564bbf049b Reviewed-on: https://go-review.googlesource.com/c/163208 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-05-23misc/android: forward SIGQUIT to the process running on the deviceElias Naur
When a test binary runs for too long, the go command sends it a SIGQUIT to force a backtrace dump. On Android, the exec wrapper will instead receive the signal and dump its backtrace. Forward SIGQUIT signals from the wrapper to the wrapped process to gain useful backtraces. Inspired by issuse 25519; this CL would have revealed the hanging test directly in the builder log. Change-Id: Ic362d06940d261374343a1dc09366ef54edaa631 Reviewed-on: https://go-review.googlesource.com/114137 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-05-23misc/android: add a NL at the of READMEBen Shi
There is no NL at the end of README, and that make it strange when doing "cat misc/android/README". Change-Id: Ib47953d7b16e8927a4d6be7d5be8de8f2ddbcc39 Reviewed-on: https://go-review.googlesource.com/114010 Reviewed-by: Elias Naur <elias.naur@gmail.com>
2018-05-10misc/android: add more information to READMEBen Shi
Add more information to misc/android/README for developing arm and arm64 with an Android environment. Change-Id: I0c88996b6ab0c41946a2c7e69e9c92ec7bb3be27 Reviewed-on: https://go-review.googlesource.com/112276 Reviewed-by: Elias Naur <elias.naur@gmail.com>
2018-01-20misc,src: add support for specifying adb flags to the android harnessElias Naur
Introduce GOANDROID_ADB_FLAGS for additional flags to adb invocations. With GOANDROID_ADG_FLAGS, the Android builders can distinguish between emulator and device builds. Change-Id: I11729926a523ee27f6a3795cb2cfb64a9454f0a5 Reviewed-on: https://go-review.googlesource.com/88795 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2017-05-01misc/android: don't let the Android exec wrapper hang indefinitelyElias Naur
On Android, the exec wrapper passes on output from adb to its parent process by passing on os.Stderr and os.Stdout to adb. If the adb process somehow hangs, it will keep stderr and stdout will open, in turn blocking go test from ever returning from its cmd.Wait() even though it has killed the exec wrapper process. Break the short circuit by introducing a wrapper between adb and the exec wrapper, preventing os/exec.Run from passing along the raw file descriptors for os.Stdout and os.Stderr. (Hopefully) fixes occasional indefinite hangs on the Android builder. Change-Id: I1188211fbde79b4a66bf93ff8e9d0091abf34560 Reviewed-on: https://go-review.googlesource.com/42271 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-06-08misc/android: make the exec wrapper exit code parsing more robustElias Naur
Before, the Android exec wrapper expected the trailing exit code output on its own line, like this: PASS exitcode=0 However, some tests can sometimes squeeze in some output after the test harness outputs "PASS" and the newline. The TestWriteHeapDumpFinalizers test is particularly prone to this, since its finalizers println to standard out. When it happens, the output looks like this: PASS finalizedexitcode=0 Two recent failures caused by this race: https://build.golang.org/log/185605e1b936142c22350eef22d20e982be53c29 https://build.golang.org/log/e61cf6a050551d10360bd90be3c5f58c3eb07605 Since the "exitcode=" string is always echoed after the test output, the fix is simple: instead of looking for the last newline in the output, look for the last exitcode string instead. Change-Id: Icd6e53855eeba60b982ad3108289d92549328b86 Reviewed-on: https://go-review.googlesource.com/23750 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
2016-05-02all: make copyright headers consistent with one space after periodEmmanuel Odeke
Follows suit with https://go-review.googlesource.com/#/c/20111. Generated by running $ grep -R 'Go Authors. All' * | cut -d":" -f1 | while read F;do perl -pi -e 's/Go Authors. All/Go Authors. All/g' $F;done The code in cmd/internal/unvendor wasn't changed. Fixes #15213 Change-Id: I4f235cee0a62ec435f9e8540a1ec08ae03b1a75f Reviewed-on: https://go-review.googlesource.com/21819 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2015-05-25misc/android: cleaner to remove stale GOROOT filesDavid Crawshaw
Updates #10806 Change-Id: I734d6db026cc7c2e3099a76dc8db8e42b2b90aa7 Reviewed-on: https://go-review.googlesource.com/10390 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-01-16misc/android: choose the right subdirectory for bin under GOPATH.Hyang-Ah Hana Kim
This change includes the cleanup of temporary files created during the binary execution as well. Change-Id: Ic01a0a537d1daafcaa3acda1ec344aff5dcddfc2 Reviewed-on: https://go-review.googlesource.com/2903 Reviewed-by: David Crawshaw <crawshaw@golang.org>
2014-09-08build: adjustments for move from src/pkg to srcRuss Cox
This CL adjusts code referring to src/pkg to refer to src. Immediately after submitting this CL, I will submit a change doing 'hg mv src/pkg/* src'. That change will be too large to review with Rietveld but will contain only the 'hg mv'. This CL will break the build. The followup 'hg mv' will fix it. For more about the move, see golang.org/s/go14nopkg. LGTM=r R=r CC=golang-codereviews https://golang.org/cl/134570043
2014-07-09androidtest.bash, misc/android: build scripts for androidDavid Crawshaw
LGTM=minux R=minux CC=golang-codereviews https://golang.org/cl/107640044