001/* 002 * ModeShape (http://www.modeshape.org) 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017package org.modeshape.common.junit; 018 019import java.lang.annotation.ElementType; 020import java.lang.annotation.Retention; 021import java.lang.annotation.RetentionPolicy; 022import java.lang.annotation.Target; 023 024/** 025 * Marker annotation used together with the {@link SkipTestRule} JUnit rule, that allows tests to be excluded 026 * from the build if they are run on certain platforms. 027 * 028 * @author Horia Chiorean (hchiorea@redhat.com) 029 */ 030@Retention( RetentionPolicy.RUNTIME) 031@Target( { ElementType.METHOD, ElementType.TYPE}) 032public @interface SkipOnOS { 033 034 /** 035 * Symbolic constant used to determine the Windows operating system, from the "os.name" system property. 036 */ 037 String WINDOWS = "windows"; 038 039 /** 040 * Symbolic constant used to determine the OS X operating system, from the "os.name" system property. 041 */ 042 String MAC = "mac"; 043 044 /** 045 * Symbolic constant used to determine the Linux operating system, from the "os.name" system property. 046 */ 047 String LINUX = "linux"; 048 049 /** 050 * The list of OS names on which the test should be skipped. 051 * 052 * @return a list of "symbolic" OS names. 053 * @see #WINDOWS 054 * @see #MAC 055 * @see #LINUX 056 */ 057 String[] value(); 058 059 /** 060 * An optional description which explains why the test should be skipped. 061 * 062 * @return a string which explains the reasons for skipping the test. 063 */ 064 String description() default ""; 065}