1/*
2 * Copyright (c) 1998, 2017, 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/* @test
25   @bug 4152178 8152272
26   @summary Check various temp-file prefix/suffix cases */
27
28import java.io.File;
29import java.io.IOException;
30
31public class Patterns {
32
33    static File dir = new File(".");
34
35    static void ckn(String prefix, String suffix) throws Exception {
36        try {
37            File f = File.createTempFile(prefix, suffix, dir);
38            f.deleteOnExit();
39        } catch (Exception x) {
40            if ((x instanceof IOException)
41                || (x instanceof NullPointerException)
42                || (x instanceof IllegalArgumentException)) {
43                System.err.println("\"" + prefix + "\", \"" + suffix
44                                   + "\" failed as expected: " + x.getMessage());
45                return;
46            }
47            throw x;
48        }
49        throw new Exception("\"" + prefix + "\", \"" + suffix
50                            + "\" should have failed");
51    }
52
53    static void cky(String prefix, String suffix) throws Exception {
54        File f = File.createTempFile(prefix, suffix, dir);
55        f.deleteOnExit();
56        System.err.println("\"" + prefix + "\", \"" + suffix
57                           + "\" --> " + f.getPath());
58    }
59
60    public static void main(String[] args) throws Exception {
61        ckn(null, null);
62        ckn("", null);
63        ckn("x", null);
64        ckn("xx", null);
65        cky("xxx", null);
66        cky("xxx", "");
67        cky("xxx", "y");
68        cky("xxx", ".y");
69        cky("xyz", "Directory" + System.getProperty("file.separator"));
70    }
71
72}
73