New issue
Advanced search Search tips

Issue 856491 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature

Blocking:
issue 860375



Sign in to add a comment

Tast should support external test data

Project Member Reported by derat@chromium.org, Jun 26 2018

Issue description

Tast should provide a mechanism for using test data that's stored in Google Cloud Storage rather than checked into the tast-tests repository. See http://doc/1ejjvufr39MP_5-ylgREQHtvT3g9zbFbL1ea7WWVNrz4 for initial discussion about why we need this (for video tests) and http://doc/17Csp-OF6JEwHnldhPE0zVJ_mMBowhhy0I5erzYWuEwo for a proposal that still needs a bit of work.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/1243be37b9383da801e68c36434e3e4fcf13a2cd

commit 1243be37b9383da801e68c36434e3e4fcf13a2cd
Author: Daniel Erat <derat@chromium.org>
Date: Thu Jun 28 23:47:32 2018

tast-bundle: Install external test data.

Update tast-bundle.eclass to read a files/external_data.conf
file that contains a list of data file paths and
corresponding Google Cloud Storage URLs.

BUG= chromium:856491 
TEST=emerged tast-local-tests-cros and verified that
     data_files_external.txt was installed at the expected
     location under /usr/share/tast/data/local in the
     board's sysroot

Change-Id: I5ed4ece81b6b721ee6ec2b78a65329f3999530c8
Reviewed-on: https://chromium-review.googlesource.com/1114465
Commit-Ready: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/1243be37b9383da801e68c36434e3e4fcf13a2cd/chromeos-base/tast-local-tests-cros/tast-local-tests-cros-9999.ebuild
[add] https://crrev.com/1243be37b9383da801e68c36434e3e4fcf13a2cd/chromeos-base/tast-local-tests-cros/Manifest
[add] https://crrev.com/1243be37b9383da801e68c36434e3e4fcf13a2cd/chromeos-base/tast-local-tests-cros/files/external_data.conf
[modify] https://crrev.com/1243be37b9383da801e68c36434e3e4fcf13a2cd/PRESUBMIT.cfg
[modify] https://crrev.com/1243be37b9383da801e68c36434e3e4fcf13a2cd/eclass/tast-bundle.eclass

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast/+/1c05c18ca456e14198e5fd29b3fd53bccf765261

commit 1c05c18ca456e14198e5fd29b3fd53bccf765261
Author: Daniel Erat <derat@chromium.org>
Date: Thu Jun 28 23:47:35 2018

tast: Add SSH.PutTreeRename to host package.

Add a new function to the host package that supports using
GNU tar's --transform flag to rename files when pushing them
from the local machine to a remote machine.

This will be used by a later change that pushes
locally-cached external data files to different paths on the
DUT.

BUG= chromium:856491 
TEST=added tests; also verified that it works in conjunction
     with following change

Change-Id: Ia3345d0543e7b5a6fcd0e6addc4415e898fa4af8
Reviewed-on: https://chromium-review.googlesource.com/1117931
Commit-Ready: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>

[modify] https://crrev.com/1c05c18ca456e14198e5fd29b3fd53bccf765261/src/chromiumos/tast/host/ssh_test.go
[modify] https://crrev.com/1c05c18ca456e14198e5fd29b3fd53bccf765261/src/chromiumos/tast/host/ssh.go

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast/+/7c00b77d1777460a28ce06223903984c29a1ac66

commit 7c00b77d1777460a28ce06223903984c29a1ac66
Author: Daniel Erat <derat@chromium.org>
Date: Mon Jul 02 16:16:44 2018

tast: Add data file unit test for cmd/tast/run.

Add a unit test that exercises the getDataFilePaths and
pushDataFiles functions in cmd/tast/run.

Also update run.Config to provide a mechanism for unit tests
to perform file copies to and from the DUT using paths that
have been rooted within a temp directory.

BUG= chromium:856491 
TEST=tests pass; also verified that example.DataFiles still
     passes

Change-Id: I0a52dfd2ac5d2752f82ebc4004effabae35bb090
Reviewed-on: https://chromium-review.googlesource.com/1121832
Commit-Ready: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>

[modify] https://crrev.com/7c00b77d1777460a28ce06223903984c29a1ac66/src/chromiumos/cmd/tast/run/local.go
[modify] https://crrev.com/7c00b77d1777460a28ce06223903984c29a1ac66/src/chromiumos/cmd/tast/run/local_test.go
[add] https://crrev.com/7c00b77d1777460a28ce06223903984c29a1ac66/src/chromiumos/cmd/tast/run/copy.go
[modify] https://crrev.com/7c00b77d1777460a28ce06223903984c29a1ac66/src/chromiumos/tast/host/ssh_test.go
[modify] https://crrev.com/7c00b77d1777460a28ce06223903984c29a1ac66/src/chromiumos/cmd/tast/run/config.go
[modify] https://crrev.com/7c00b77d1777460a28ce06223903984c29a1ac66/src/chromiumos/tast/host/ssh.go

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast/+/dc0764ce5b2a5731c9abd83ebeaac1bae0f03fd3

commit dc0764ce5b2a5731c9abd83ebeaac1bae0f03fd3
Author: Daniel Erat <derat@chromium.org>
Date: Wed Jul 04 23:16:16 2018

tast: Support external data files.

When building a local bundle, make "tast run" read the
bundle's external_data.conf file from the overlay and
download and push external data files needed by tests.

BUG= chromium:856491 
TEST=added unit tests; also manually tested by running
     updated example.TestData test
CQ-DEPEND=I5ed4ece81b6b721ee6ec2b78a65329f3999530c8

Change-Id: Ib53bc9e466031753c215f203f899c874d963b6f4
Reviewed-on: https://chromium-review.googlesource.com/1117935
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>

[modify] https://crrev.com/dc0764ce5b2a5731c9abd83ebeaac1bae0f03fd3/src/chromiumos/cmd/tast/run/copy.go
[modify] https://crrev.com/dc0764ce5b2a5731c9abd83ebeaac1bae0f03fd3/src/chromiumos/cmd/tast/run/local.go
[modify] https://crrev.com/dc0764ce5b2a5731c9abd83ebeaac1bae0f03fd3/src/chromiumos/cmd/tast/run/local_test.go
[modify] https://crrev.com/dc0764ce5b2a5731c9abd83ebeaac1bae0f03fd3/src/chromiumos/cmd/tast/build/config.go
[modify] https://crrev.com/dc0764ce5b2a5731c9abd83ebeaac1bae0f03fd3/docs/writing_tests.md
[modify] https://crrev.com/dc0764ce5b2a5731c9abd83ebeaac1bae0f03fd3/src/chromiumos/cmd/tast/run/config.go

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast/+/c249be0856e327a0cfa29d8954b076ef1d32098c

commit c249be0856e327a0cfa29d8954b076ef1d32098c
Author: Daniel Erat <derat@chromium.org>
Date: Wed Jul 04 23:16:15 2018

tast: Add externalDataMap for reading external_data.conf.

Add an externalDataMap class that supports reading
external_data.conf files mapping from data filenames to
external URLs and downloading the required files.

A later change will make the tast executable use this to
download and push external data files to DUTs when using
"run -build".

BUG= chromium:856491 
TEST=added unit tests; also manually tested in conjunction
     with followup change

Change-Id: Ic19631b5aec9c525d9e5e52c3460bf3a5fd542b6
Reviewed-on: https://chromium-review.googlesource.com/1122716
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>

[add] https://crrev.com/c249be0856e327a0cfa29d8954b076ef1d32098c/src/chromiumos/cmd/tast/run/external_data.go
[add] https://crrev.com/c249be0856e327a0cfa29d8954b076ef1d32098c/src/chromiumos/cmd/tast/run/external_data_test.go

Blocking: 860375
It sounds like there are unsolved issues around updating Manifest files after updating external_data.conf; see https://crrev.com/c/1119609.

Basically, "ebuild <path/to/package.ebuild> manifest" doesn't seem to update Manifest when files/external_data.conf (but not the .ebuild file) is changed. Per nya@, it works after making a whitespace change to the .ebuild file, but emerging fails after reverting the whitespace change (even after keeping the updated Manifest).
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast-tests/+/27f7397270e501bbbf11a3c83dd9a0a3d1a5961d

commit 27f7397270e501bbbf11a3c83dd9a0a3d1a5961d
Author: Daniel Erat <derat@chromium.org>
Date: Thu Jul 05 08:10:55 2018

tast-tests: Make example.DataFiles also use external data.

Make the example.DataFiles test read a
data_files_external.txt data file that's located in Google
Cloud Storage rather than checked into the tast-tests
repository.

BUG= chromium:856491 
TEST=ran it
CQ-DEPEND=Ib53bc9e466031753c215f203f899c874d963b6f4
CQ-DEPEND=I5ed4ece81b6b721ee6ec2b78a65329f3999530c8

Change-Id: Iea3c475aad70880507605dba92c653f712e31309
Reviewed-on: https://chromium-review.googlesource.com/1123886
Commit-Ready: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>

[add] https://crrev.com/27f7397270e501bbbf11a3c83dd9a0a3d1a5961d/src/chromiumos/tast/local/bundles/cros/example/data/data_files_checked_in.txt
[modify] https://crrev.com/27f7397270e501bbbf11a3c83dd9a0a3d1a5961d/src/chromiumos/tast/local/bundles/cros/example/data_files.go
[delete] https://crrev.com/90f8b9dfb0e2a52f1d5d81c197744f18321fcc5e/src/chromiumos/tast/local/bundles/cros/example/data/data_files_data1.txt

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/e9fc22b6dc7603599c9ac5b910a884c94411ccd6

commit e9fc22b6dc7603599c9ac5b910a884c94411ccd6
Author: Daniel Erat <derat@chromium.org>
Date: Wed Jul 11 19:13:20 2018

tast-bundle: Add TAST_BUNDLE_EXTERNAL_DATA_URLS.

Add a TAST_BUNDLE_EXTERNAL_DATA_URLS variable to
tast-bundle.eclass. The variable must match the URLs listed
in the ebuild's files/external_data.conf file.

This duplication ensures that a unique version of the ebuild
will be created whenever its external data file list is
changed, which is needed in order for an updated Manifest
file to be generated and used.

BUG= chromium:856491 
TEST=emerge-caroline tast-local-tests-cros

Change-Id: I333eba66eeb5087294e97eb919cddd0d5f69b4fc
Reviewed-on: https://chromium-review.googlesource.com/1130016
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/e9fc22b6dc7603599c9ac5b910a884c94411ccd6/chromeos-base/tast-local-tests-cros/tast-local-tests-cros-9999.ebuild
[modify] https://crrev.com/e9fc22b6dc7603599c9ac5b910a884c94411ccd6/chromeos-base/tast-local-tests-cros/files/external_data.conf
[modify] https://crrev.com/e9fc22b6dc7603599c9ac5b910a884c94411ccd6/eclass/tast-bundle.eclass

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/tast/+/34e32ada528f8bb64bb017d05289499904a141d7

commit 34e32ada528f8bb64bb017d05289499904a141d7
Author: Daniel Erat <derat@chromium.org>
Date: Tue Jul 17 13:20:15 2018

tast: Update data files info in writing_tests.md.

Add more information about adding external data files to the
"Writing Tests" doc.

BUG= chromium:856491 
TEST=viewed in md_browser

Change-Id: I98913427a52fccbf30b0844cabe4201735e99a22
Reviewed-on: https://chromium-review.googlesource.com/1134355
Tested-by: Dan Erat <derat@chromium.org>
Reviewed-by: Shuhei Takahashi <nya@chromium.org>

[modify] https://crrev.com/34e32ada528f8bb64bb017d05289499904a141d7/docs/writing_tests.md

Status: Fixed (was: Started)
Blocking: -860375
Blocking: 860375

Sign in to add a comment