rjkroege / edwood

Go version of Plan9 Acme Editor
Other
380 stars 34 forks source link

Regression testing for Plan9 #127

Open rjkroege opened 5 years ago

rjkroege commented 5 years ago

As @fhs works towards getting Edwood to run on Plan9, we should figure out a regression testing scheme. I believe that the Go team has a mechanism to run 9front GCE images. Something like that would permit us to run tests on Plan9. Next action: investigate and update the bug.

fhs commented 5 years ago

There is a good overview here: https://github.com/golang/build#overview

We'd at least need to run the coordinator and a buildlet for plan9. This page describes how the VM image that runs buildlet is created: https://github.com/golang/build/tree/master/env/plan9-386 . I can't find the script that builds a 9front VM, but it shouldn't be that different. Go is broken on 9front/386 and 9front doesn't provide amd64 ISO, so there is an extra step of bootstrapping 9front/amd64 from 9front/386. @0intro probably has the scripts.

We can run tests using gomote from Travis CI, but that's probably not very secure. We may need to write a tool for github integration.

sirnewton01 commented 5 years ago

The last time I tried Go on 9front/386 I needed to set GO386=387. https://golang.org/doc/install/source

0intro commented 5 years ago

I haven't done the necessary work to make 9front running on GCE yet. The Go build dashboard only runs 32-bit Plan 9, and, experimentally, the 64-bit Plan 9 (9k). The plan9/amd64 and plan9/arm builders are currently running at home. There used to be a 9front builder, but it was running at home as well.

You could probably use the plan9-386 script (or the experimental plan9-386 script with amd64 support) as a basis to generate a 9front disk image for GCE. It may require some changes in 9front, because, for example, if I recall correctly, the 9front kernel present on the CD image doesn't output to the serial console by default.

It's not an issue if the 9front CD image doesn't include amd64 binaries. You can easily add the mk rules in the script to build the amd64 user space and kernel.

There may be issues when running Go on 9front because it hasn't been tested much. Any help to improve the port would be greatly appreciated.

GO386=387 should not be required anymore, since we took care to not use floating point instructions in the note handler.