SLIDER-352 some tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/83665f61 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/83665f61 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/83665f61 Branch: refs/heads/feature/SLIDER-149_Support_a_YARN_service_registry Commit: 83665f617025fea9f8f7e5462e30d66caab025d0 Parents: b3a835d Author: Steve Loughran <ste...@apache.org> Authored: Fri Aug 22 16:08:24 2014 +0100 Committer: Steve Loughran <ste...@apache.org> Committed: Fri Aug 22 16:08:24 2014 +0100 ---------------------------------------------------------------------- .../common/tools/TestWindowsSupport.groovy | 78 ++++++++++++++++++++ 1 file changed, 78 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/83665f61/slider-core/src/test/groovy/org/apache/slider/common/tools/TestWindowsSupport.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/common/tools/TestWindowsSupport.groovy b/slider-core/src/test/groovy/org/apache/slider/common/tools/TestWindowsSupport.groovy new file mode 100644 index 0000000..4da42f2 --- /dev/null +++ b/slider-core/src/test/groovy/org/apache/slider/common/tools/TestWindowsSupport.groovy @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.slider.common.tools + +import groovy.transform.CompileStatic +import groovy.util.logging.Slf4j +import org.apache.hadoop.conf.Configuration +import org.apache.hadoop.fs.ChecksumFileSystem +import org.apache.hadoop.fs.Path +import org.apache.hadoop.fs.FileSystem as HadoopFS +import org.junit.Test + +import java.util.regex.Pattern + +@CompileStatic +@Slf4j +class TestWindowsSupport { + + private static final Pattern hasDriveLetterSpecifier = + Pattern.compile("^/?[a-zA-Z]:"); + public static + final String windowsFile = "C:\\Users\\Administrator\\AppData\\Local\\Temp\\junit3180177850133852404\\testpkg\\appdef_1.zip" + + + private static boolean hasWindowsDrive(String path) { + return hasDriveLetterSpecifier.matcher(path).find(); + } + + private static int startPositionWithoutWindowsDrive(String path) { + if (hasWindowsDrive(path)) { + return path.charAt(0) == '/' ? 3 : 2; + } else { + return 0; + } + } + + @Test + public void testHasWindowsDrive() throws Throwable { + assert hasWindowsDrive(windowsFile) + } + + @Test + public void testStartPosition() throws Throwable { + assert 2 == startPositionWithoutWindowsDrive(windowsFile) + } + + @Test + public void testPathHandling() throws Throwable { + System.setProperty("os.name", "Windows/286") + Path path = new Path(windowsFile); + def uri = path.toUri() +// assert "file" == uri.scheme + assert uri.authority == null; + + + + Configuration conf = new Configuration() + + def localfs = HadoopFS.get(uri, conf) + assert localfs instanceof ChecksumFileSystem + } +}