Skip to content

Conversation

@mandel-macaque
Copy link
Contributor

@mandel-macaque mandel-macaque commented Mar 14, 2019

This commit improves the state of the BCL testing in the following ways:

  1. Improve the device tests running. Less apps, faster results.
  2. Reduces the chances of getting issue
    https://github.com/xamarin/maccore/issues/581 when running the tests
    since we have less apps to run.

We now support the ignore files per assembly name to simplify the
tracking of the ignored tests.

@mandel-macaque mandel-macaque added the run-bcl-tests Run the BCL tests label Mar 14, 2019
@mandel-macaque
Copy link
Contributor Author

mandel-macaque commented Mar 14, 2019

This moves to have just 4 apps for ALL the BCL tests. Once landed, I'll try to move all BCL tests to 2 single Mac OS X apps, one for NUnit, other for xUnit.

Copy link
Contributor

@spouliot spouliot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure this runs correct on device for 32bits, i.e. both iOS and watchOS
I'm concerned that either/both the native linker (24bits) limits and watchOS timeouts could break this

Maybe it's possible to have this grouping optional ?

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

@rolfbjarne
Copy link
Member

build

Copy link
Member

@rolfbjarne rolfbjarne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it's possible to have this grouping optional ?

One possibility is to add both options to the list of tests when running locally (in server mode). This would mean the non-grouped versions won't even exist on the bots.

"monotouch_System.Security_xunit-test.dll",
"monotouch_System.Runtime.Serialization_xunit-test.dll",
"monotouch_System.Runtime.CompilerServices.Unsafe_xunit-test.dll", }),
(name:"BCL tests group 4", assemblies: new[] { "monotouch_System.Core_xunit-test.dll",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of really minor naming points:

  • Maybe name the XUnit and Unit tests differently: BCL tests group X (NUnit) and BCL tests group X (XUnit).
  • I'd intuitively expect the most basic/important assemblies to use a lower number: that the mscorlib/System tests would be in group 1, and more peripheral assemblies in group >1.

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

@rolfbjarne
Copy link
Member

build

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

This commit improves the state of the BCL testing in the following ways:

1. Improve the device tets running. Less apps, faster results.
2. Reduces the chances of getting issue
    https://github.com/xamarin/maccore/issues/581 when running the tests
    since we have less apps to run.

We now support the ignore files per assembly name to simplify the
tracking of the ignored tests.
@mandel-macaque
Copy link
Contributor Author

@rolfbjarne got a nice idea on how to do it so that locally they are not grouped (better for the developer to test and debug) and group on jenkins). You might or not like it ;)

@akoeplinger
Copy link
Member

@mandel-macaque it'd be nice if this was an option, I'd like to use the grouped version locally too.

@rolfbjarne
Copy link
Member

build

@monojenkins
Copy link
Collaborator

Build success
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
Test run succeeded

@mandel-macaque
Copy link
Contributor Author

@spouliot @akoeplinger after the last push, it is an option. You can make xharness think you are on Jenkins setting the env var https://github.com/xamarin/xamarin-macios/blob/master/tests/xharness/Harness.cs#L692 else, if that env var does not have the right value, you will get one app per assembly as we used.

I have not look much into the group naming, so ideas are welcome (simple string replacement).

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)

@akoeplinger
Copy link
Member

@mandel-macaque that's pretty non-discoverable and reusing the Jenkins variable probably has other implications? why not add a separate option?

@monojenkins
Copy link
Collaborator

Build failure
Build was aborted

@mandel-macaque
Copy link
Contributor Author

@akoeplinger code/var reuse, but add a new one in the last commit: 343efd7#diff-8f44b7ce671e35190b27341716ad7e8cR699

@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
🔥 Test run failed 🔥

Test results

5 tests failed, 0 tests skipped, 181 tests passed.

Failed tests

  • mscorlib/Mac/Modern: Failed (Test run failed.)
  • [NUnit] Mono Mac OS X BCL tests group 1/Mac/Full: TimedOut (Execution timed out after 1200 seconds.)
  • [xUnit] Mono Mac OS X BCL tests group 2/Mac/Full: TimedOut (Execution timed out after 1200 seconds.)
  • [NUnit] Mono Mac OS X BCL tests group 1/Mac/Modern: TimedOut (Execution timed out after 1200 seconds.)
  • [xUnit] Mono Mac OS X BCL tests group 2/Mac/Modern: Failed (Test run crashed (exit code: 255).)

@mandel-macaque
Copy link
Contributor Author

Looks like the combination of tests assemblies on mac os x makes the tests block. Will provide a sample to @akoeplinger

Current split works. Also, if an assembly is ignore in a platform, it will not be included in the grouped app.

@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
🔥 Test run failed 🔥

Test results

2 tests failed, 0 tests skipped, 190 tests passed.

Failed tests

  • [NUnit] Mono Mac OS X BCL tests group 1/Mac/Full: TimedOut (Execution timed out after 1200 seconds.)
  • [NUnit] Mono Mac OS X BCL tests group 1/Mac/Modern: TimedOut (Execution timed out after 1200 seconds.)

@monojenkins
Copy link
Collaborator

Build success
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
Test run succeeded

@mandel-macaque
Copy link
Contributor Author

As per las commit, iOS/tvOS and MacOS apps are grouped, watchOS are not due to small issues with the deployment to the device and their execution.

@monojenkins
Copy link
Collaborator

Build failure
Build succeeded
API Diff (from stable)
API Diff (from PR only) (no change)
Generator Diff (no change)
🔥 Test run failed 🔥

Test results

1 tests failed, 0 tests skipped, 219 tests passed.

Failed tests

  • mscorlib/watchOS - simulator/Debug: Failed

@mandel-macaque
Copy link
Contributor Author

The failing issues is known: https://github.com/xamarin/maccore/issues/619

@mandel-macaque mandel-macaque merged commit 1615b28 into dotnet:master Mar 20, 2019
@mandel-macaque mandel-macaque deleted the group-bcl-tests branch March 20, 2019 11:10
mandel-macaque added a commit to mandel-macaque/xamarin-macios that referenced this pull request Mar 24, 2019
…otnet#5768)

This commit improves the state of the BCL testing in the following ways:

1. Improve the device tets running. Less apps, faster results.
2. WatchOS apps are left as they were to ensure that we do not have deplouyment/run issues.

We now support the ignore files per assembly name to simplify the
tracking of the ignored tests. All
VincentDondain pushed a commit that referenced this pull request Apr 19, 2019
…5768)

This commit improves the state of the BCL testing in the following ways:

1. Improve the device tets running. Less apps, faster results.
2. WatchOS apps are left as they were to ensure that we do not have deplouyment/run issues.

We now support the ignore files per assembly name to simplify the
tracking of the ignored tests. All
VincentDondain added a commit that referenced this pull request May 9, 2019
…5980)

* [tests] Don't run BitcodeNotSupported tests on watchOS. (#5744)

Ref: mono/mono#13007

* [tests] Check all architectures when verifying public symbols. (#5745)

This also means updating the whitelisted symbols.

* [XHarness] Don't run BitcodeNotSupported BCL tests on watchOS. (#5750)

* [xharness] Remove bitcode from tvOS apps. (#5781)

We don't need the bitcode for testing, it makes test apps bigger (so big that
the Apple TV might refuse to install them).

* [XHarness] Reduce the number of test applications for the BCL tests. (#5768)

This commit improves the state of the BCL testing in the following ways:

1. Improve the device tets running. Less apps, faster results.
2. WatchOS apps are left as they were to ensure that we do not have deplouyment/run issues.

We now support the ignore files per assembly name to simplify the
tracking of the ignored tests. All

* [XHarness] Ensure we do not crash if the framework node is missing. (#5792)

* [xharness] Fix BuildOnly logic (#5813)

#4884 introduced the logic of only building certain `RunTestTask`.
This was meant to disable iOS Extensions as part of a fix to xamarin/maccore#1008.
However this didn't quite work and iOS extensions were still running (and failing).
The reason being that `BuildOnly` was set to a `RunDeviceTask` that's added to a list which is then given to `CreateTestVariations` which creates new instances of `RunDeviceTask`.
We now propagate `BuildOnly` to the new variation instance.

* [XHarness] Fix IntermediateOutputPath getting inserted in the wrong place. (#5841)

* Ignore tests for devices (#5807)

* [XHarness] Ignore some tests that fail on device.

Added the ignore, which can be later removed on the new mono 2019-02
since the issues do not happen there.

Fixes: xamarin/maccore#1495

* [XHarness] Ignore corlib tets failing on devices.

Added the required ignores to get the devices green and workaround mono
issue mono/mono#13641

* [XHarness] Ignore a failing test on devices. (#5848)

* [XHarness] Update ignore for some failing tests. (#5887)

The mono bump added some new tests that fail on device + release
configurations. This is a known issue by mono and they'll fix it in the
next version but will not be backported to 2018-10.

* [XHarness] Ignore monotouch_Microsoft.CSharp_xunit-test.dll until issue 5868 is fixed. (#5869)

If not ignored, we will have an issue building the test app on device
resulting on a failure.

* [d16-1][xharness] Skip fsharp iOS tests until #5886 is merged

This can be reverted if #5886 makes it in.

* [XHarness] Fix issues building the today extensions for the BCL tests apps. (#5854)

* [d16-1][xharness] Ignore failing device tests because mono backports are impossible

* [d16-1][xharness] Ignore correct interp tests and more BCL group 1

* [d16-1][xharness] Ignore mscorlib interpreter (debug) test

* [tests] Adjust SetupBlockPerfTest to expect at least a 4x speedup instead of 6x

We hit this:

```
Expected: greater than 6
But was: 4.9317220348827826d
```

So adjusting to 4 to avoid those random failures.

See xamarin/maccore#649 for more details.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-bcl-tests Run the BCL tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants