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

34 Коммитов

Автор SHA1 Сообщение Дата
Alexander Köplinger d8b97ad15e Fix NUnit.ConsoleRunner version in Makefiles (#5610)
It was updated to 3.9.0 in https://github.com/xamarin/xamarin-macios/pull/5538 but a few hardcoded 3.5.0 in the Makefiles were missed
2019-02-15 07:38:21 +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
Manuel de la Pena 3618cefc5a
[Harness] Reduce the noise in the make files. Fixes xamarin/maccore#1156 (#5154)
* [Harness] Reduce the noise in the make files.

The Makefile.cs code generates a lot of noise becuase it tries to build
a make rule for the new BCL tests, these rules do not work and can be
ignored.

Fixes issue: https://github.com/xamarin/maccore/issues/1156
2018-11-21 13:28:06 +01: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
Rolf Bjarne Kvinge fa440cf01c
[xharness] Make sure we don't run 'nuget restore' for tests-mac.sln multiple times in parallel. Fixes maccore#1122. (#5104)
Make sure we don't run 'nuget restore' for test-mac.sln multiple times in
parallel by creating a separate make target that runs 'nuget restore', and
making every build-mac-* target depend on that target.

Fixes https://github.com/xamarin/maccore/issues/1122.
2018-11-08 15:36:56 +01: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 27688e8d5b
[xharness] Fix the generation of the Mac makefile to export the right variables to use the locally build Xamarin.Mac. (#5087) 2018-11-06 15:06:58 +01:00
Rolf Bjarne Kvinge 745c18cc73 Merge remote-tracking branch 'origin/master' into msbuild-port 2018-10-11 07:31:58 +02:00
Rolf Bjarne Kvinge 61baa008d4 [xharness] Don't include 32-bit XM targets in grouped Makefile targets.
Fixes an issue with the packaged XM tests, where they don't build because we try to build 32-bit tests.
2018-06-13 18:53:57 +02: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 98edb545c9
[xharness] Store a computed make variable in a temporary variable to avoid computing it many times. (#3382)
This makes `make` in (with nothing to do) run 18x faster in tests/ (from 1.3s to 0.07s).
2018-02-02 17:17:59 +01:00
Rolf Bjarne Kvinge eefdd17e15
[xharness] Fix Makefile generation of grouped targets with spaces. (#3250)
These targets will already be properly escaped (using backslash), so adding
quotes will cause make to treat the backslashes literally (and break).

Fixes an issue with package-tests:

    $ make package-tests
    [...]
    build-mac-classic-dont\ link failed
    build-mac-unified-dont\ link failed
    build-mac-unifiedXM45-dont\ link failed
    build-mac-unified32-dont\ link failed
    build-mac-unifiedXM4532-dont\ link failed
    build-mac-unified-link\ all failed
    build-mac-unified-link\ sdk failed
    make[4]: *** [build-mac] Error 1
    make[3]: *** [mac-test-package.zip] Error 2
    make[2]: *** [package-tests] Error 2
2018-01-18 09:08:20 +01:00
Rolf Bjarne Kvinge b699a0b29c
[tests] Create 'link all' and 'link sdk' tests for XM. (#3234)
* [tests] Add 'link all' test for XM.

* [tests] Add 'link sdk' test for XM.

* [tests] Move dontlink-mac tests to linker-mac directory to have the same directory layout as linker-ios.
2018-01-16 19:15:59 +01:00
Rolf Bjarne Kvinge 8c4a6ce1f4
[xharness] Don't hardcode the project configuration in the generated Makefile. (#3208)
Fixes this:

    $ make run-mac-xammac_tests CONFIG=Release
    [... building release configuration ...]
    make[2]: xammac_tests/bin/x86/Debug/xammac_tests.app/Contents/MacOS/xammac_tests: No such file or directory
    make[2]: *** [exec-mac-unified-xammac_tests] Error 1
    make[1]: *** [run-mac-unified-xammac_tests] Error 2
    run-mac-unified-xammac_tests failed
2018-01-12 17:05:40 +01:00
Rolf Bjarne Kvinge 71a17aa673 [xharness] Add support for generating only specific variations for iOS projects. Fixes #57529 (#2751)
And use it to skip watchOS tests for Mono.Security, since we don't ship Mono.Security.dll for watchOS.

https://bugzilla.xamarin.com/show_bug.cgi?id=57529
2017-09-22 18:04:32 +02:00
Rolf Bjarne Kvinge 8344caf54a [xharness] Disable sim32 tests on wrench for now. (#2202) 2017-06-10 18:42:42 -07:00
Rolf Bjarne Kvinge 336dc74fa2 [tests] Convert mmp tests to a standard NUnit test library. (#2067)
* [tests] Convert mmp tests to a standard NUnit test library.

* [xharness] Add support for restoring nugets before building projects.

And restore nugets for tests-mac.sln before building mac test projects.
2017-05-08 13:20:01 +02:00
Rolf Bjarne Kvinge 651a9735ff Use Visual Studio instead of Xamarin Studio. (#1972)
* Use Visual Studio instead of Xamarin Studio.

* VS doesn't have mdtool, it has vstool.

Also there's no need to manually invoke the mdtool.exe executable anymore
(which we did because the mdtool executable had a min macOS version of 10.9,
and we used to build tests on older macOS versions [1]), since now we only run
tests on older macOS versions, we don't build those tests there.

[1] a1932b0ccd
2017-04-11 08:13:34 +02:00
Chris Hamons 1db1ce5a40 [XM] Add BCL tests (#1447) 2017-02-01 11:05:08 -05:00
Rolf Bjarne Kvinge 8391a3ca39 [xharness] Major rewrite (add server mode, add device support, add today extension support).
* Add a server mode, which launches a web server (and a web page) that can be
  used to interactively run tests and view their results.

* Add support for running test assemblies in a today extension (generating a
  new set of projects, similar to how we generate tvOS/watchOS projects based
  on the iOS project, we now generate a today extension project in addition to
  the tvOS and watchOS projects).

* Load all the different tests (and show them in the html report, although
  they show up as 'ignored'), even for disabled/ignored tests. This makes
  disabled/ignored tests more visible, and also makes it possible to actually
  run them using the embedded web server.

* Add support for running tests on device. Tests will be executed on multiple
  devices simulatenously (any connected devices will be used).
2017-01-05 13:08:48 +01:00
Rolf Bjarne Kvinge 1b84d7bbd9 [xharness] Add support for specifying 32-bit and 64-bit mode when running on device.
Also add support for running both 32-bit and 64-bit tests on device
with one target.
2016-10-11 19:52:35 +02:00
Rolf Bjarne Kvinge 9000e48034 [tests] Remove Classic test projects, and make the Unified test projects the master projects. (#858) 2016-09-21 22:55:10 +02:00
Rolf Bjarne Kvinge 5408c056d0 [xharness] Remove Classic logic from makefile generation. (#823) 2016-09-13 10:04:24 -04:00
Sebastien Pouliot 38148c718a Merge branch 'xcode8' 2016-09-09 15:29:37 -04:00
Rolf Bjarne Kvinge 451781a98f [xharness] Don't run classic tests on wrench. (#661) 2016-08-25 13:11:51 +02:00
Rolf Bjarne Kvinge 812051ee18 [xharness] Don't generate makefile targets for non-executable projects. (#567) 2016-08-06 10:58:03 -04:00
Rolf Bjarne Kvinge 56fc26b26f [xharness] Split the mscorlib/System test run for watchOS into multiple executions. (#564)
* [tests] Implement filtering based on test name to make it possible to run a subset of tests manually.

* [xharness] Add support for passing environment variables to test apps.

* [xharness] Split the mscorlib/System test run for watchOS into multiple executions.

When running on a watch, the complete set of mscorlib and System tests use too
much memory, so they end up crashing the app.

So instead don't run all the tests in the same test run, but
instead split them up.

This splits the System tests in 5 different sets, based on the first
character of the test class name.

The mscorlib tests are split in 26 different sets, one for each
character (A-Z).
2016-08-05 22:28:13 +02:00
Rolf Bjarne Kvinge 51937dc7e3 [xharness] Don't generate makefile targets for non-executable projects. (#482) 2016-07-25 15:01:34 -04:00
Rolf Bjarne Kvinge 70747b3317 [xharness] Fix logdirectory path to use correct directory separator. (#210) 2016-06-15 22:05:12 -07:00
Rolf Bjarne Kvinge d135612f59 [tests] Implement support in xharness for running the simulator tests grouped by simulator, and write out an html report. 2016-06-15 10:51:14 -07:00
Rolf Bjarne Kvinge 8af0326105 [xharness] Clean targets are named 'Clean', not 'clean'. (#162)
At least according to mdtool.

Fixes this:

    [...]
    Target 'clean not supported
    make[4]: *** [clean-mac-classic-introspection] Error 1
2016-06-09 14:23:58 -04:00
Rolf Bjarne Kvinge e3cc7c31bc [xharness] Write relative paths in the makefiles. (#160)
Fixes the packaged mac tests when they're executed on a different
machine with a different path.
2016-06-09 17:36:32 +02:00
Rolf Bjarne Kvinge e450dae136 [xharness] Add support for the introspection tests. (#151)
* [xharness] Add support for the introspection tests.

* [tests] Add support for mac introspection tests to xharness.
2016-06-08 19:45:31 +02:00
Rolf Bjarne Kvinge ecfdea9508 [tests] Import 2016-05-26 15:06:52 +02:00