2
0

Allow filtering Java test cases.

This commit is contained in:
Maarten Billemont 2018-06-03 16:50:19 -04:00
parent 073ef4f439
commit 5501f1f97d
3 changed files with 31 additions and 7 deletions

View File

@ -18,6 +18,8 @@
package com.lyndir.masterpassword; package com.lyndir.masterpassword;
import static com.lyndir.lhunath.opal.system.util.StringUtils.strf;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.primitives.UnsignedInteger; import com.google.common.primitives.UnsignedInteger;
@ -190,6 +192,12 @@ public abstract class MPAlgorithm {
protected abstract byte[] toID(byte[] bytes); protected abstract byte[] toID(byte[] bytes);
@Override
public String toString() {
return strf( "%d, %s", version().toInt(), getClass().getSimpleName() );
}
/** /**
* The algorithm iterations. * The algorithm iterations.
*/ */

View File

@ -25,7 +25,8 @@ import static com.lyndir.lhunath.opal.system.util.StringUtils.*;
import com.google.common.primitives.UnsignedInteger; import com.google.common.primitives.UnsignedInteger;
import com.lyndir.lhunath.opal.system.logging.Logger; import com.lyndir.lhunath.opal.system.logging.Logger;
import com.lyndir.lhunath.opal.system.util.NNSupplier; import com.lyndir.lhunath.opal.system.util.NNSupplier;
import java.util.List; import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlTransient;
@ -41,11 +42,21 @@ public class MPTests {
@SuppressWarnings("UnusedDeclaration") @SuppressWarnings("UnusedDeclaration")
private static final Logger logger = Logger.get( MPTests.class ); private static final Logger logger = Logger.get( MPTests.class );
private final Set<String> filters = new HashSet<>();
List<Case> cases; List<Case> cases;
@Nonnull @Nonnull
public List<Case> getCases() { public List<Case> getCases() {
if (filters.isEmpty())
return checkNotNull( cases ); return checkNotNull( cases );
return checkNotNull( cases ).stream().filter( testCase -> {
for (final String filter : filters)
if (testCase.getIdentifier().startsWith( filter ))
return true;
return false;
} ).collect( Collectors.toList() );
} }
public Case getCase(final String identifier) { public Case getCase(final String identifier) {
@ -65,6 +76,10 @@ public class MPTests {
} }
} }
public boolean addFilters(final String... filters) {
return this.filters.addAll( Arrays.asList( filters ) );
}
public static class Case { public static class Case {
String identifier; String identifier;

View File

@ -39,6 +39,7 @@ public class MPMasterKeyTest {
throws Exception { throws Exception {
testSuite = new MPTestSuite(); testSuite = new MPTestSuite();
//testSuite.getTests().addFilters( "v0" );
} }
@Test @Test
@ -53,20 +54,20 @@ public class MPMasterKeyTest {
assertEquals( assertEquals(
CodeUtils.encodeHex( masterKey.getKeyID( testCase.getAlgorithm() ) ), CodeUtils.encodeHex( masterKey.getKeyID( testCase.getAlgorithm() ) ),
testCase.getKeyID(), testCase.getKeyID(),
"[testMasterKey] keyID mismatch: " + testCase ); "[testMasterKey] keyID mismatch for test case: " + testCase );
// Test invalidation // Test invalidation
masterKey.invalidate(); masterKey.invalidate();
try { try {
masterKey.getKeyID( testCase.getAlgorithm() ); masterKey.getKeyID( testCase.getAlgorithm() );
fail( "[testMasterKey] invalidate ineffective: " + testCase ); fail( "[testMasterKey] invalidate ineffective for test case: " + testCase );
} }
catch (final MPKeyUnavailableException ignored) { catch (final MPKeyUnavailableException ignored) {
} }
assertNotEquals( assertNotEquals(
masterPassword, masterPassword,
testCase.getMasterPassword().toCharArray(), testCase.getMasterPassword().toCharArray(),
"[testMasterKey] masterPassword not wiped: " + testCase ); "[testMasterKey] masterPassword not wiped for test case: " + testCase );
return true; return true;
} ); } );
@ -87,7 +88,7 @@ public class MPMasterKeyTest {
testCase.getKeyContext(), testCase.getResultType(), testCase.getKeyContext(), testCase.getResultType(),
null ), null ),
testCase.getResult(), testCase.getResult(),
"[testSiteResult] result mismatch: " + testCase ); "[testSiteResult] result mismatch for test case: " + testCase );
return true; return true;
} ); } );
@ -115,7 +116,7 @@ public class MPMasterKeyTest {
assertEquals( assertEquals(
result, result,
password, password,
"[testSiteState] state mismatch: " + testCase ); "[testSiteState] state mismatch for test case: " + testCase );
} }
} }