Path: blob/master/test/langtools/jdk/jshell/ExecPtyGetFlagsToSetTest.java
40931 views
/*1* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24* @test25* @bug 822418426* @summary Control Char <UNDEF> check for pty27* @modules jdk.internal.le/jdk.internal.org.jline.terminal28* jdk.internal.le/jdk.internal.org.jline.terminal.impl29* @requires (os.family == "linux") | (os.family == "aix")30*/3132import java.util.List;33import jdk.internal.org.jline.terminal.Attributes;34import jdk.internal.org.jline.terminal.Attributes.ControlChar;35import jdk.internal.org.jline.terminal.Attributes.LocalFlag;36import jdk.internal.org.jline.terminal.impl.ExecPty;3738public class ExecPtyGetFlagsToSetTest extends ExecPty {39public ExecPtyGetFlagsToSetTest(String name, boolean system) {40super(name, system);41}4243@Override44protected List<String> getFlagsToSet(Attributes attr, Attributes current) {45return super.getFlagsToSet(attr, current);46}4748public static void main(String[] args) {49ExecPtyGetFlagsToSetTest testPty =50new ExecPtyGetFlagsToSetTest("stty", true);5152Attributes attr = new Attributes();53Attributes current = new Attributes();5455current.setLocalFlag(LocalFlag.ICANON, false);56current.setControlChar(ControlChar.VMIN, 1);57current.setControlChar(ControlChar.VTIME, 0);5859attr.setLocalFlag(LocalFlag.ICANON, true);60attr.setControlChar(ControlChar.VMIN, -1);61attr.setControlChar(ControlChar.VTIME, -1);6263List<String> commands = testPty.getFlagsToSet(attr, current);64String result = String.join(" ", commands);65if (!result.equals("icanon")) {66throw new RuntimeException("stty options contains invalid value.");67}68}69}707172