blob: 4d0d25571bf1151252aa282fdf383951481ba4e4 [file] [log] [blame]
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed 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 com.android.sdklib;
import com.android.annotations.Nullable;
import com.android.sdklib.repository.FullRevision;
import com.android.sdklib.repository.NoPreviewRevision;
import com.android.utils.ILogger;
import java.util.Properties;
public class BuildToolInfoTest extends SdkManagerTestCase {
/**
* Wraps an *existing* build-tool info object to expose some of its internals for testing.
*/
public static class BuildToolInfoWrapper extends BuildToolInfo {
private final BuildToolInfo mInfo;
private NoPreviewRevision mOverrideJvmVersion;
public BuildToolInfoWrapper(BuildToolInfo info) {
super(info.getRevision(), info.getLocation());
mInfo = info;
}
@Override
public String getPath(PathId pathId) {
return mInfo.getPath(pathId);
}
@Override
public Properties getRuntimeProps() {
return mInfo.getRuntimeProps();
}
@Override
public boolean isValid(ILogger log) {
return mInfo.isValid(log);
}
@Override
public boolean canRunOnJvm() {
// This runs canRunOnJvm on *this* instance so that it can
// access the overridden getCurrentJvmVersion below rather than
// the original that we are wrapping.
return super.canRunOnJvm();
}
@Override
protected NoPreviewRevision getCurrentJvmVersion() throws NumberFormatException {
if (mOverrideJvmVersion != null) {
return mOverrideJvmVersion;
}
return mInfo.getCurrentJvmVersion();
}
public void overrideJvmVersion(@Nullable NoPreviewRevision jvmVersion) {
mOverrideJvmVersion = jvmVersion;
}
}
public void testGetCurrentJvmVersion() {
SdkManager sdkman = getSdkManager();
BuildToolInfo bt = sdkman.getBuildTool(new FullRevision(18, 3, 4, 5));
assertNotNull(bt);
// Check the actual JVM running this test.
NoPreviewRevision curr = bt.getCurrentJvmVersion();
// We can reasonably expect this to at least run with JVM 1.5 or more
assertTrue(curr.compareTo(new FullRevision(1, 5, 0)) > 0);
// and we can reasonably expect to not be running with JVM 42.0.0
assertTrue(curr.compareTo(new FullRevision(42, 0, 0)) < 0);
}
}