1 /*
2  * Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.
8  *
9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 package compiler.lib.ir_framework;
25 
26 /**
27  * Well-defined argument values that can be used in the {@link Arguments} annotation at a {@link Test} method for a
28  * <b>base test</b> or a <b>checked test</b>.
29  *
30  * @see Arguments
31  * @see Test
32  * @see Check
33  */
34 public enum Argument {
35     /**
36      * Provides the default value for any kind of primitive type and object type if the class provides a default constructor.
37      */
38     DEFAULT,
39     /**
40      * Provides the number 42 for any primitive number type.
41      */
42     NUMBER_42,
43     /**
44      * Provides the number -42 for any primitive number type.
45      */
46     NUMBER_MINUS_42,
47     /**
48      * Provides the minimum value of the specified primitive number type.
49      */
50     MIN,
51     /**
52      * Provides the maximum value of the specified primitive number type.
53      */
54     MAX,
55     /**
56      * Provides the boolean value false.
57      */
58     FALSE,
59     /**
60      * Provides the boolean value true.
61      */
62     TRUE,
63     /**
64      * Provides a different boolean value on each test invocation, starting with false.
65      */
66     BOOLEAN_TOGGLE_FIRST_FALSE,
67     /**
68      * Provides a different boolean value on each test invocation, starting with true.
69      */
70     BOOLEAN_TOGGLE_FIRST_TRUE,
71     /**
72      * Provides a random primitive value on the first test invocation and reuses the same value for all invocation of the test.
73      * Float and double values are restricted to the range [-10000,10000].
74      */
75     RANDOM_ONCE,
76     /**
77      * Provides a different random primitive value on each test invocation.
78      * Float and double values are restricted to the range [-10000,10000].
79      */
80     RANDOM_EACH,
81 }
82