commit | f10f4ddce187fb24cd690fce4a72eadfafc1f354 | [log] [tgz] |
---|---|---|
author | Mathieu Binette <mbinette@google.com> | Wed Mar 13 21:00:20 2019 |
committer | Mathieu Binette <mbinette@google.com> | Fri Mar 15 23:25:02 2019 |
tree | 4ca30fbc0d2147ffa5cf58ff86b105d8ac8253c4 | |
parent | 44f7542cf684096d42e85d36fbc5c805325d6d12 [diff] |
Fix intermittent _WriteComputeLogsTo failure. We sometimes see this error when writing Compute logs: UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in position 123412: ordinal not in range(128) It doesn't happen very often (I've seen it twice in ~50 failure runs in the past few days), but it's very annoying because it results in an empty log file being uploaded. Verified: Fails: ``` logs = "some logs - " + u'\ufffd' + " -some more logs" with open("/tmp/test.txt", 'w') as f: f.write(logs) ``` Succeeds: ``` logs = "some logs - " + u'\ufffd' + " -some more logs" with open("/tmp/test.txt", 'w') as f: f.write(logs.encode("utf-8")) ``` Change-Id: I8e27dfc4501a39644a1f9b048b8e8c034fe9550e Reviewed-on: https://chromium-review.googlesource.com/c/enterprise/cel/+/1521048 Reviewed-by: Fei Ling <feiling@chromium.org>
Chrome Enterprise Lab is an inaccurately named set of tools for building enterprise labs quickly and easily. The labs so built can be used for system level end-to-end testing of Google Chrome/Chromium.
Have a peek at the Design document.
Also have a peek at the Code of Conduct.
Most of the code is in Go. See Guide to code to get a head start on the code in this repository.
Go: Download Go from the Go download page. This project requires Go 1.9.4 or later. The build will fail with prior versions.
Depot Tools: Used for managing the checkout and the contributor workflow.
Protocol Buffers Compiler: Protocol buffers are used extensively for wranging all the data that needs to be shuttled around. Can be installed automatically via ./build.py deps --install
.
Dep : Used for Go depedency management. This can be installed automatically by running ./build.py deps --install
from the root of the source tree.
Go support for Protocol Buffers : This can be installed automatically by running ./build.py deps --install
from the root of the source tree.
There are two ways to get the source. One is to use managed deps, and the other is to use plain go get
. The latter workflow doesn't quite work yet due to this repository not being integrated with go.chromium.org
. So this page only mentions the managed dependency workflow.
Clone this repository:
Assumes that $GOPATH
is a single path and not a :
delimited list.
mkdir -p ${GOPATH}/src/chromium.googlesource.com/enterprise cd ${GOPATH}/src/chromium.googlesource.com/enterprise git clone https://chromium.googlesource.com/enterprise/cel cd cel
Get the dependencies:
python build.py deps --install
Use the build script:
python build.py build
Also make sure the tests pass.
python build.py test
See CONTRIBUTING.