Граф коммитов

80 Коммитов

Автор SHA1 Сообщение Дата
Rolf Bjarne Kvinge 8128976084
[runtime] Split the build differently: build libraries for simulator and device separately. (#7143)
This has a couple of advantages:

* It makes it easier to add a catalyst version of these libraries (because it
  becomes cumbersome to build for catalyst when the build rules assumes we're
  building for both simulator and device).
* It makes it easier to create an xcframework of our libraries, because the
  contents in an xcframework is split like this.
2019-10-03 16:38:44 +02:00
Rolf Bjarne Kvinge 664bb077e2 Fix downloading mono archive when running device tests. 2019-09-16 15:11:49 +02:00
Jo Shields a29ae8e6df Bump to mono:2019-06 (#6196)
* Use the commonly used casing for `MSBuildSDKsPath` property

Handle "incorrectly" cased msbuild property names

msbuild property names are case insensitive. While generating the custom
app.config, in `SetToolsetProperty(..)` we try to update the property if
it already exists. But the name lookup was case sensitive, thus causing
the lookup to fail, resulting in two entries for the same property name
differing only in case. Eg. `MSBuildSDKsPath` vs `MSBuildSdksPath`.

* [mtouch] Whitelist new Brotli native symbols in Xamarin.Tests.Misc.PublicSymbols test

* [mtouch] Better assert in NoLLVMFailuresInWatchOS() test

We'd list the "LLVM failed" messages before even though the AOT might've crashed and the list is meaningless. Assert the exit code before that.

* [mtouch] Use new LLVM even for 32bit targets

See https://github.com/mono/mono/issues/14841 and https://github.com/mono/mono/issues/9621

* [mtouch] Work around slow LLVM in "don't link" test

See https://github.com/mono/mono/issues/14843

* Remove useless conditional

* Remove LLVM36 from Makefile

* [watch4] set right min version for arm64_32 based watch devices (#6307)

Fixes the confusion around `libmono-native*` (see for example ce5ba1e41d (commitcomment-33834491) ) when building with `MONO_BUILD_FROM_SOURCE=1`.

* reflect watchos64_32_version_min change from mono sdk

* Move mono hash info to mk/mono.mk so that existing scripts work.

* Add Makefile dependency on mono.mk where necessary

With 3e7bc29ade the Mono hash was moved from Make.config to mono.mk.

We need to add a Makefile dependency on this file wherever Make.config was used to track a Mono dependency.

* [tests] Copy mk/mono.mk to the XM test package.

* [tests] Update minOS version test after consolidating min watchOS versions everywhere.

Fixes this mtouch and mmptest failure:

    1) Failed : Xamarin.Tests.ProductTests.MinOSVersion(watchOS,MinwatchOS,WatchOSSimulator,False)
      Failures
      Expected: <empty>
      But was:  < "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (mono-runtime-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (bindings-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (bindings-generated-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (shared-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (runtime-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (trampolines-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (trampolines-invoke-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (xamarin-support-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (nsstring-localization-debug.arm64_32.o).", "Unexpected minOS version (expected 2.0.0, alternatively 2.0.0, found 5.1.0) in /Users/builder/jenkins/workspace/xamarin-macios/xamarin-macios/_ios-build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/SDKs/Xamarin.WatchSimulator.sdk/usr/lib/libxamarin-debug.a (trampolines-varargs-debug.arm64_32.o)."... >

* [mmp] Fix make clean target

It needs an -r to remove directories:

```
rm: bin: is a directory
rm: obj: is a directory
```

* Add new xamarin_timezone_get_local_name() to a few more places
2019-07-16 17:24:00 +02:00
Rolf Bjarne Kvinge 4d8c0df299
[tests] Automatically download mono packages before running device builds. (#6187)
Automatically download mono packages and setup symlinks before running device
builds.

This simplifies the build scripts on Azure Devops slightly.
2019-06-03 07:40:17 -07:00
Alexander Köplinger 5020fbc0a0 Add missing dependencies on Make.config
Otherwise things wouldn't get rebuild when Mono is bumped.
2019-05-22 17:44:58 +02:00
Alexander Köplinger 247a6bf551 Switch to mono archive and remove submodule 2019-05-21 22:16:02 +02:00
Manuel de la Pena 94fe39b118
[XHarness] Do use the test dlls from the mono downloads. (#6055)
This updates the project generation. We cannot yet fully remove the submodule because:

* We are missing the xunit dlls which should be added in the SDK.
* We have not yet remove all the old style tests. Would make the PR huge, better to deal with it in a diff PR.
* The xunit CoreLib tests have issues loading all the tests, needs some extra work and again, the PR is already large.

Fixes: xamarin/maccore#1199
Fixes: xamarin/maccore#1204
Fixes: xamarin/maccore#1209
Fixes: xamarin/maccore#1510
2019-05-19 14:55:14 -07:00
Manuel de la Pena 0fc7cff218 [Jenkins] Do not run device tests in the internal jenkins instance. (#6034) 2019-05-10 08:25:14 +02:00
Manuel de la Pena f2f345ac25
[VSTS] Ensure that the corrent tests are run on devices. (#6019)
The change allows to state the tests that have to be ran. ATM with these
changes, the vsts pipeline must add the following to the env vars:

* tvOS device pipelines: Must add run-tvos-tests to the labels.
* iOS device pipelines: Must add run-ios-tests to the labels.

This will ensure that only the tests for the devices are ran and if the
tests pass we get a green build with no unexpected skips.
2019-05-09 13:06:49 +02:00
Rolf Bjarne Kvinge 6c3674658a
Download the Mono SDK archive for macOS as well. (#5953)
* Download the Mono SDK archive for macOS as well.

* [tests] Don't forget the tests.
2019-04-26 16:44:29 +02:00
Manuel de la Pena 4745a438b2
[VSTS] Do not set the tests that have to be ran, use a new env arg to be set in the VSTS job. (#5948) 2019-04-25 12:06:47 +02:00
Rolf Bjarne Kvinge 99e727c90b
Merge pull request #4904 from xamarin/mono-2018-10
Bump to mono:2018-10
2019-03-08 11:06:50 +01:00
Manuel de la Pena 3d1c3e5c6b
[XHarness] Fix makefile to take into account the importer sources. (#5695)
Ensure that when the importer sources are changed, xharness is
recompiled.
2019-03-01 17:02:08 +01:00
Alexander Köplinger ca90eb2e19 Merge branch 'master' into mono-2018-10
# Conflicts:
#	external/mono
2019-01-10 22:13:44 +01:00
Rolf Bjarne Kvinge 61bf0db817
[tests] Run tests-docs using xharness. (#5372)
Jenkins has a limitation where you can't mark a step a failure, it has to
*fail* to be reported as such.

This means that running multiple tests, and reporting a failure if any of
those tests fail is not possible.

We run into this with the normal test run + the docs tests; where we currently
don't show a red result in the UI if any of those fail.

So incorporate the test-docs step into xharness, so that we only have one
thing to in the Jenkinsfile, which makes it possible for us to fail the test
run step properly.

This also required a few upgrades to xharness to get more info for pull
requests, since the logic to enable the docs tests is a bit more complicated
than anything else we have (if the current branch (or the target branch for a
PR) is 'master' AND xamarin mode is enabled).
2019-01-10 16:43:02 +01:00
Rolf Bjarne Kvinge 327c0a8ddf
[xibuild] Add support for /verbose, and use it accordingly. (#5224)
* [xibuild] Add support for /verbose, and use it accordingly.

Also stop using xibuild when it's not needed.

* Use the same verbosity for xibuild as we do for xbuild/msbuild.
2019-01-09 07:43:22 +01:00
Rolf Bjarne Kvinge a42b6b7237
[tests] Add MONO_SDK_DESTDIR to config file when using system XI for tests. (#5355)
Fixes this problem when running the VSTS device tests:

    Unhandled Exception:
    System.Collections.Generic.KeyNotFoundException: The given key 'MONO_SDK_DESTDIR' was not present in the dictionary.
      at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x0001e] in <96207d0baa204f48a53ad6be05f5ecba>:0
      at xharness.Harness.LoadConfig () [0x001a3] in <299e29e4a95f41499aef8f7d9863ca3d>:0
      at xharness.Harness.Execute () [0x00001] in <299e29e4a95f41499aef8f7d9863ca3d>:0
      at xharness.MainClass.Main (System.String[] args) [0x003e3] in <299e29e4a95f41499aef8f7d9863ca3d>:0
2019-01-09 07:30:01 +01:00
Marek Safar c6653167b9 Merge remote-tracking branch 'origin/master' into mono-2018-10 2019-01-07 14:41:25 +01:00
Manuel de la Pena ef78b1dbc3
[XHarness] Do not build the test assemblies for the iOS platforms. (#5270)
We now download the ios Mono sdk which means that there is no need for
us to build the test assemblies on iOS, WatchOS and tvOS BUT we need to
do so for the Mac tests.

The change includes:
  1. Use fo the downloaded test assemblies.
  2. Removal of the dependency of building them in the tests.
  3. Move back to using reflection for the project generation.
  4. Remove the cached project details added in the workaround.
2018-12-18 14:21:09 +01:00
Marek Safar aa6fefb1c9 Merge remote-tracking branch 'origin/master' into mono-2018-10 2018-12-17 15:28:08 +01:00
Manuel de la Pena ffae762db2
[XHarness] Add support for xunit and nunit tests on Mac OS X. (#5182)
This change adds support to execute the tests provided by mono as assemblies.This includes:

1. App generation to run the bcl tests on modern and full.
2. Needed workaround to delay the compilation of the assemblies until we have them from the SDK.
3. All failing tests are ignored.
2018-12-12 10:38:48 +01:00
Marek Safar 60d08b8559 Merge branch 'master' into mono-2018-10 2018-11-29 13:41:32 +01:00
Manuel de la Pena 61b2038b3d
[Xharness] Add a workaround to not build the xunit tests when not needed. (#5156)
* [Xharness] Add a workaround to not build the xunit tests when not needed.

This is a workaround that does not use reflection to build the bcl test
projects. We need this until we have complete support of using mono as
an SDK.
2018-11-23 16:02:15 +01:00
Rolf Bjarne Kvinge f91e8fb811
Use a full path to xibuild. (#5140)
* Use a full path to xibuild.

Use a full path to xibuild everywhere, since it's easier than making sure PATH
is correct every time we want to invoke xibuild.

Also remove the xbuild-in-place script, it's not used anymore.

* Fix xibuild path lookup.

* [xammac_tests] Remove unneeded csproj changes.
2018-11-20 12:14:16 -05:00
Rolf Bjarne Kvinge 50bb4912e1
Revert "[xharness] Only build the BCL tests when we need them. (#5139)" (#5149)
This reverts commit 7277bbcd2b, it breaks building & running the new BCL tests.
2018-11-20 07:06:37 -05:00
Rolf Bjarne Kvinge 7277bbcd2b
[xharness] Only build the BCL tests when we need them. (#5139)
Only build the BCL tests when we need them, because we can't build them when
we're running the device tests (because we don't have a built source tree in
that case).

Since the test assemblies are required when generating the BCL projects, this
means we also delay creating the BCL projects until we need them.
2018-11-19 09:07:35 -05:00
Ankit Jain f865694f86 Move tests to use new tool xibuild and thus fix msbuild tests (#5128)
* xibuild: New wrapper tool to run msbuild or managed executables

MSBuild supports fallback paths for projects imported using
`$(MSBuildExtensionsPath)`, but these must be specified explicitly in
the app.config of the main executable. There was a PR to allow use of
properties for this in the app.config, but that was not accepted
upstream.

This is required for being able to:

1. build projects with msbuild against the in-tree XI/XM build output
2. and to run nunit tests against the same.

For this we introduce a new tool, `xibuild`, based on XA's `xabuild`.
This supports the fallback paths to be specified via the environment variable
`MSBuildExtensionsPathFallbackPathsOverride`[1].
It essentially operates in 3 modes:

1. `xibuild -c /path/to/foo.exe`
	Generates /path/to/foo.exe.config with the fallback paths inserted into that.

2. `xibuild -- /v:diag /path/to/project.csproj`
	Runs msbuild with the arguments after `--` with a custom app.config based on
	`MSBuild.dll.config`, with the fallback paths correctly inserted.
	This is in a temporary file and the original config file is not touched.

3. `xibuild -t -- /path/to/managed_tool.exe args`
	Generates `/path/to/managed_tool.exe.config` based on `MSBuild.dll.config` with
	the fallback paths inserted, and runs `managed_tool.exe` with the arguments.
	The default is to overwrite the config file.
	But there is also a switch to merge it with an existing config file.

--
1. Value of the environment variable $MSBuildExtensionsPathFallbackPathsOverride
is prepended to any existing list of search paths in `MSBuild.dll.config`, IOW,
it takes precedence. So, the order of lookup becomes:

  - Value of the property `$(MSBuildExtensionsPath)`
  - Value of the environment variable `$MSBuildExtensionsPathFallbackPathsOverride`
  - /Library/Frameworks/Mono.framework/External/xbuild on macOS

* Integrate use of `xibuild` with the tests

Update all uses of `msbuild` and invocations of tools like nunit that
might depend on using the in-tree builds to use `xibuild`.

* xibuild: Move help descriptions to OptionSet itself.
2018-11-16 14:24:35 -05:00
Manuel de la Pena 505006952c
[Tests] Add a new iOS app to run the xunit and nunit tests (#4914)
Mono know provides a set of testing assemblies that contain the tests to be ran in each of the supported platforms. This commit adds the following:

1. Two different runners that can be used to execute NUnit and xUnit tests.
2. The necessary  glue to get xharness to run the new tests and report the results.
3. A new test that will ensure that if mono adds new tests, xharness will report failures if the tests are not run or not ignored.
2018-11-16 13:31:40 -05:00
Ludovic Henry 1c59076f82 Merge branch 'master' of github.com:xamarin/xamarin-macios into mono-2018-10 2018-11-14 14:20:02 -05:00
Martin Baulig e349f0e66e Add mono-native tests to Makefile. 2018-11-14 13:41:36 -05:00
Rolf Bjarne Kvinge 3835e1dafb
[tests] Point MSBuild to the right Xamarin.Mac location when building packaged Xamarin.Mac tests. Fixes maccore#1115. (#5090)
* [tests] Point MSBuild to the right Xamarin.Mac location when building packaged Xamarin.Mac tests. Fixes maccore#1115.

Fixes https://github.com/xamarin/maccore/issues/1115.

* [xharness] Ensure all makefile targets set the proper environment variables.
2018-11-07 09:34:16 +01:00
Rolf Bjarne Kvinge c69c74b3d3
Clone files if possible whenever it makes sense. (#5049)
Cloning is faster when supported, and it also saves disk space.
2018-10-29 16:09:30 +01:00
Rolf Bjarne Kvinge d899d4fb70
Remove bitrotted support for a separate mono submodule for watchOS support. (#5022)
Unce upon a time we used a separate mono submodule for watchOS support, to make
development of watchOS support easier (we referenced mono/master, to avoid
backporting fixes for watchOS support through various release branches in
mono).

This only worked until our watchOS support became stable, since then we had to
start using a stable version of mono for watchOS support.

This means that our build support for using a separate mono clone for watchOS
support is no longer needed; and in any case it's broken because of build
changes done later.
2018-10-22 16:14:26 +02:00
Rolf Bjarne Kvinge 516aab9143 Merge remote-tracking branch 'origin/master' into msbuild-port 2018-07-27 09:43:14 +02:00
Rolf Bjarne Kvinge ffee9bfbbd
[xharness] Trace exceptions to have better information when something goes very wrong. (#4145) 2018-05-29 09:27:26 -04:00
Ankit 2805beaf63 [tests] Ensure that the correct msbuild.dll.config gets picked up
.. by setting `MSBUILD_EXE_PATH` to the corresponding `MSBuild.dll`.
2018-05-22 13:40:21 -04:00
Ankit c7b051436f [msbuild] Replace all invocations of xbuild with msbuild
- And map xbuild properties to msbuild ones for fallback paths

`XBUILD_FRAMEWORK_FOLDERS_PATH -> TargetFrameworkFallbackSearchPaths`

`MSBuildExtensionsPath -> MSBuildExtensionsPathFallbackPathsOverride`

Note:
Earlier with xbuild, the order of lookup for (example)
`MSBuildExtensionsPath` was:

	1. The value of $(MSBuildExtensionsPath), which we were setting to
	the in-tree path

	2. /Library/Frameworks/Mono.framework/External/xbuild on osx

	3. $prefix/lib/mono/xbuild (default location)

And with the above changes, it will be:

	1. The value of $(MSBuildExtensionsPath), which we are no longer
	setting, so the default path : $prefix/lib/mono/xbuild

	2. The in-tree path, via $(MSBuildExtensionsPathFallbackPathsOverride)

	3. /Library/Frameworks/Mono.framework/External/xbuild on osx

Since, XI/XM targets are used via fallback path
`/Library/Frameworks/Mono.framework/External/xbuild`, the default
location doesn't matter. And the order of the remaining two remains the
same.

The same thing applies to the target frameworks also.
2018-05-22 13:24:29 -04:00
Rolf Bjarne Kvinge 273995cb16
[tests] Fetch MonoTouch.Dialog-1.dll and MonoTouch.NUnitLite.dll from their installed location. (#3997)
Fetch MonoTouch.Dialog-1.dll and MonoTouch.NUnitLite.dll from their installed
location, since any intermediate locations might change.

Fixes this:

    $ make qa-test-dependencies.zip
    [...]
    cp: ../src/build/tvos/reference/MonoTouch.Dialog-1.dll*: No such file or directory
    make: *** [qa-test-dependencies.zip] Error 1
2018-04-27 07:38:41 +02:00
Rolf Bjarne Kvinge 9d2a886f86
[jenkins] Create comment file for PR builds. (#3799)
* [jenkins] Create comment file for PR builds.
2018-04-02 14:49:03 +02:00
Rolf Bjarne Kvinge d421caeb97
[tests] Run iOS extensions tests on device. (#3618) 2018-03-01 14:57:28 +01:00
Manuel de la Pena b35b479cea
[Harness] Add the System.IdentityModel bcl tests. (#3295) 2018-01-25 10:19:41 +01:00
Manuel de la Pena 35806edb5a
[Harness] Add System.ServiceModel tests to the bcl tests. (#3238)
* [Harness] Add System.ServiceModel tests from the bcl.
2018-01-24 12:56:20 +01:00
Rolf Bjarne Kvinge 7079a0581f
[tests] Disable some old-style tests on wrench, long live the new-style tests. (#3226)
These were accidentally not disabled when we started running tests on Wrench
like we do on Jenkins.

So disable them, to avoid duplicate work on Wrench.
2018-01-15 18:53:52 +01:00
Vincent Dondain d7b7a6ea02 Merge branch 'xcode9.2' 2017-12-06 14:41:13 -05:00
Manuel de la Pena 8ed3f85c07
[Debugger] Allow to step into Xamarin code. (#1663)
* [Debugger] Allow to step into Xamarin code.

The tool now detects the different sources and mangles the path to
ensure that the correct paths are installed in the following location:

/Library/Frameworks/Xamarin.iOS/Versions/Current/src
/Library/Frameworks/Xamarin.Mac/Versions/Current/src

The tool will detect if the path map command was used in the mdb and pub files, will point to the correct source code and will copy it to the installation dir. 

Tests have been added that will be ran both by wrench and jenkins ensuring that changes in the manglers do not change it behaviour.
2017-12-05 14:13:59 +01:00
Rolf Bjarne Kvinge f21f48b727 [tests] Enable xammac-tests on wrench. (#3056)
Wrench runs `wrench-mac-xammac_tests`, but since there were no such target,
make would execute the `wrench-%` target, which is disabled when iOS is
disabled.

Thus this strange behavior would be seen on wrench for xammac tests when iOS
is disabled:

    /Applications/Xcode92-beta2.app/Contents/Developer/usr/bin/make -C /Users/builder/data/lanes/5665/d2b1b757/source/xamarin-macios/tests wrench-mac-xammac_tests
    git clean -xfdq
    iOS tests have been disabled [wrench-mac-xammac_tests]

By creating the `wrench-mac-xammac_tests` target, we'll end up doing the right
thing instead.
2017-11-28 16:10:56 -05:00
Rolf Bjarne Kvinge ea20f841f8
[tests] Make incremental uploads of the device testing results possible. (#3052) 2017-11-28 14:27:19 +01:00
Manuel de la Pena c895771685
[XHarness] Add System.Security tests from the bcl. (#3013)
* [XHarness] Add System.Security tests from the bcl.
2017-11-23 12:29:49 +01:00
Rolf Bjarne Kvinge 6d063afdb5
[tests] Run the tests on Wrench like we do on Jenkins. (#3026)
* [xharness] Add support for executing a command periodically.

This will be used to run 'rsync' on bots to upload the html report somewhere
while the tests are running.

* [tests] Disable all the wrench test targets, and instead run the jenkins target (only) on wrench.

* [xharness] Write xharness log to stdout as well on wrench.

Wrench has a 30-min stdout timeout: if nothing is printed in 30 minutes, then
the step fails. Printing the harness log to stdout makes us not hit this
timeout.

* [xharness] Timestamp a few more logs.

* [xharness] Disable the @MonkeyWrench calls, since we're not uploading directly to wrench anymore.
2017-11-22 16:03:36 +01:00
Rolf Bjarne Kvinge 6fcf4ab7f4
[tests] Allow xharness to open many files when running device tests. (#3024) 2017-11-21 07:22:31 +01:00