aboutsummaryrefslogtreecommitdiff
path: root/src/test
AgeCommit message (Collapse)Author
2017-05-26Fix JUnitParamsRunner so it works with CTS shardingandroid-o-preview-4android-o-preview-3android-o-iot-preview-5o-iot-preview-5Paul Duffin
CTS uses the Android Test Support Library's TestRequestBuilder.ShardingFilter to spread changes across a number of devices in order to parallelize testing. CTS runs the tests in two modes, in the first it collects the set of tests that will be run - the list of tests returned by Runner.getDescription() (after filtering) and in the second it actually runs the tests as returned by ParentRunner.getFilteredChildren(). JUnitParams does not work in that situation because it applies the filter in a different way for parameterized methods depending on whether it is collecting or running which leads to inconsistent methods in each phase which causes CTS problems. When collecting it creates a flat list of FrameworkMethod instances, one for each method, whether parameterized or not and applies the filter to that. Once it has filtered it iterates over to create the Description and during that process it creates N Description objects for each parameterized method and 1 Description object for each non-parameterized method. That means that for each parameterized method either every instance is collected or none of them are. When running it creates a flat list of FrameworkMethod instances, one for each non-parameterized method and N for each parameterized method (where N is the number of parameter sets supplied for the method). They are then filtered individually. That means that for each parameterized method some of its instances are run but not necessarily all. This fixes it by making the running and describing parts completely consistent in how they apply the filters. This change will be pushed upstream if possible. Tested by running the two commands given in the bug and ensuring that they produce the correct set of tests. Added target to build the test on host and ran selected tests from there. Ran all tests on the device as per instructions in Android.mk file. Bug: 38419944 Test: See above Change-Id: I25b4d4130ffdc71c77992abf592662ba1e1432db
2017-05-25Ignore tests that no longer workPaul Duffin
Previous changes caused tests that use @TestCaseName to start to fail but did not update the tests to ensure that they still run. Bug: 38419944 Test: run tests as described in Android.mk Change-Id: I2d5ed10bcf49fa114f73292bbe06fd70c158ae99
2016-12-16Partially revert "Patch to make it compile against JUnit 4.10 and run on ↵android-o-preview-1o-previewPaul Duffin
Android" This partially reverts commit 6774bdc0447b72a618eab51772685010afd5647a. Bug: 33613916 Test: make checkbuild Change-Id: Iac008952ff1a0e6f89d8862e817a8b2480dcbb28
2016-07-21Patch to make it compile against JUnit 4.10 and run on AndroidPaul Duffin
The main issues are: * JUnit 4.10 does not support giving Description instances a unique id, separate to its display name. * JUnit 4.10's BlockJUnit4ClassRunner.validateFields(List) method is private so cannot be overridden. * JUnit 4.10 requires test classes to be static. * JUnit 4.10 has no assertNotEquals() methods. * Some of the tests need to be run from the project's root directory in order to access file system resources. As a result those tests do not work when run on the device and so they are marked with @Ignore. Bug: 30244565 Test: Ran the junit-params-test using vogar Change-Id: I8f1bd602d07bedec1340373ad5747e3565ce617d
2016-07-20Fix dependency on undefined order of Class.getMethods()Paul Duffin
The Class.getMethods() returns an array of methods from a class and its interfaces and super class but specifies that the order is undefined. The affected test indexes the array using an index of 0, presumably because it assumes that the method defined in the class comes before methods defined in the super class and interfaces. This is a bug in the upstream repository and is separated out from the other patches to make it easier to push it to the upstream repository. Bug: 30244565 Change-Id: I9e267b53614a46497e04c73841d086b83b536570 Test: Once it compiles the tests will be run.
2016-07-20Workaround Android's lack of java.beans.PropertyEditor/ManagerPaul Duffin
The classes are used to allow developers to customize JUnitParams' handling of conversion from literal String values to the type of parameters required by the parameterized test methods. This simply removes the code that uses the classes. That means developers who require custom data types will have to accept String parameters in their parameterized test methods and do the conversions manually. Bug: 30244565 Change-Id: I0dd479591d6fb60f0a08025c51ab3c9494c1bda2 Test: Once it compiles the tests will be run.
2016-07-20Initial checkin of JUnitParams-1.0.5Paul Duffin
Adds README.version, README.google, MODULE_LICENSE_APACHE2 files as required by the process (see b/30087411). The code does not yet compile; it requires patching to work with Android API and JUnit 4.10. Those patches will be added in separate commits to make it easy to identify the Android specific changes. All the changes will be submitted together. Bug: 30244565 Change-Id: Icf556377478c3afdd644c5e4db0ff18898f496ae Test: Once it compiles the tests will be run.