/** * this annotation type is shamelessly lifted from JUnit. * * The only reason it is here is that we don't want to pull the whole of JUnit into * our 'classpath' when executing TestJPF classes under JPF, just because some of * the test SUT methods have a @Test annotation. * * Lifting/masking classes in general is not a good practice, but it seems to * be the lesser of two evils in this case, given that we really don't need * anything but just the simple annotation type. * * NOTE - this might be different if we execute junit under JPF, which is the * reason why we include the @Test features here. However - this assumes that @Test * is such a basic JUnit type that it won't change */ package org.junit; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) @SuppressWarnings({ "unused" }) public @interface Test { static class None extends Throwable { private static final long serialVersionUID= 1L; private None() {} } Class<? extends Throwable> expected() default None.class; long timeout() default 0L; }