1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 package org.apache.commons.exec;
19
20 import static org.junit.jupiter.api.Assertions.fail;
21
22 import java.io.File;
23 import java.nio.file.Path;
24 import java.nio.file.Paths;
25
26 /**
27 */
28 public final class TestUtil {
29
30 /**
31 * Gets success and fail return codes used by the test scripts
32 *
33 * @return int array[2] = {ok, success}
34 */
35 public static int[] getTestScriptCodesForOS() {
36 if (OS.isFamilyWindows()) {
37 return new int[] { 0, 1 };
38 }
39 if (OS.isFamilyUnix()) {
40 return new int[] { 0, 1 };
41 }
42 if (OS.isFamilyOpenVms()) {
43 return new int[] { 1, 2 };
44 }
45 fail("Test not supported for this OS");
46 return null; // unreachable.
47 }
48
49 public static File resolveScriptFileForOS(final String script) {
50 return resolveScriptPathForOS(script).toFile();
51 }
52
53 public static Path resolveScriptPathForOS(final String script) {
54 if (OS.isFamilyWindows()) {
55 return Paths.get(script + ".bat");
56 }
57 if (OS.isFamilyUnix()) {
58 return Paths.get(script + ".sh");
59 }
60 if (OS.isFamilyOpenVms()) {
61 return Paths.get(script + ".dcl");
62 }
63 fail("Test not supported for this OS");
64 return null; // unreachable.
65 }
66
67 private TestUtil() {
68 }
69
70 }