summaryrefslogtreecommitdiff
path: root/src/test/java/net/sf/antcontrib/cpptasks/devstudio
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/net/sf/antcontrib/cpptasks/devstudio')
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudio2005CCompiler.java41
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioCCompiler.java41
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioLinker.java44
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestInstalledDevStudioLinker.java60
4 files changed, 186 insertions, 0 deletions
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudio2005CCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudio2005CCompiler.java
new file mode 100644
index 0000000..dccb986
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudio2005CCompiler.java
@@ -0,0 +1,41 @@
+/*
+ *
+ * Copyright 2002-2007 The Ant-Contrib 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 net.sf.antcontrib.cpptasks.devstudio;
+import java.util.Vector;
+
+import junit.framework.TestCase;
+
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+/**
+ * Test Microsoft C/C++ compiler adapter
+ *
+ */
+public class TestDevStudio2005CCompiler extends TestCase {
+ public TestDevStudio2005CCompiler(String name) {
+ super(name);
+ }
+ public void testDebug() {
+ DevStudio2005CCompiler compiler = DevStudio2005CCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addDebugSwitch(args);
+ assertEquals(4, args.size());
+ assertEquals("/Zi", args.elementAt(0));
+ assertEquals("/Od", args.elementAt(1));
+ assertEquals("/RTC1", args.elementAt(2));
+ assertEquals("/D_DEBUG", args.elementAt(3));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioCCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioCCompiler.java
new file mode 100644
index 0000000..eeeec14
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioCCompiler.java
@@ -0,0 +1,41 @@
+/*
+ *
+ * Copyright 2002-2007 The Ant-Contrib 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 net.sf.antcontrib.cpptasks.devstudio;
+import java.util.Vector;
+
+import junit.framework.TestCase;
+
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+/**
+ * Test Microsoft C/C++ compiler adapter
+ *
+ */
+public class TestDevStudioCCompiler extends TestCase {
+ public TestDevStudioCCompiler(String name) {
+ super(name);
+ }
+ public void testDebug() {
+ DevStudioCCompiler compiler = DevStudioCCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addDebugSwitch(args);
+ assertEquals(4, args.size());
+ assertEquals("/Zi", args.elementAt(0));
+ assertEquals("/Od", args.elementAt(1));
+ assertEquals("/GZ", args.elementAt(2));
+ assertEquals("/D_DEBUG", args.elementAt(3));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioLinker.java b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioLinker.java
new file mode 100644
index 0000000..7fdaabe
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioLinker.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * Copyright 2002-2004 The Ant-Contrib 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 net.sf.antcontrib.cpptasks.devstudio;
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+import net.sf.antcontrib.cpptasks.compiler.TestAbstractLinker;
+import org.apache.tools.ant.taskdefs.condition.Os;
+/**
+ * Test for Microsoft Developer Studio linker
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestDevStudioLinker extends TestAbstractLinker {
+ public TestDevStudioLinker(String name) {
+ super(name);
+ }
+ protected AbstractProcessor create() {
+ return DevStudioLinker.getInstance();
+ }
+ public void testGetIdentfier() {
+ if (!Os.isFamily("windows")) {
+ return;
+ }
+ AbstractProcessor compiler = create();
+ String id = compiler.getIdentifier();
+ boolean hasMSLinker = ((id.indexOf("Microsoft") >= 0) && (id
+ .indexOf("Linker") >= 0))
+ || id.indexOf("link") >= 0;
+ assertTrue(hasMSLinker);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestInstalledDevStudioLinker.java b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestInstalledDevStudioLinker.java
new file mode 100644
index 0000000..07f1339
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestInstalledDevStudioLinker.java
@@ -0,0 +1,60 @@
+/*
+ *
+ * Copyright 2002-2004 The Ant-Contrib 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 net.sf.antcontrib.cpptasks.devstudio;
+
+import java.io.File;
+
+
+/**
+ * Test for Microsoft Developer Studio linker
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestInstalledDevStudioLinker extends TestDevStudioLinker
+{
+ public TestInstalledDevStudioLinker(String name) {
+ super(name);
+ }
+
+ public void testGetLibraryPath() {
+ File[] libpath = DevStudioLinker.getInstance().getLibraryPath();
+ //
+ // unless you tweak the library path
+ // it should have more thean three entries
+ assertTrue(libpath.length >= 2);
+ //
+ // check if these files can be found
+ //
+ String[] libnames = new String[] { "kernel32.lib",
+ "advapi32.lib", "msvcrt.lib", "mfc42.lib", "mfc70.lib" };
+ boolean[] libfound = new boolean[libnames.length];
+ for (int i = 0; i < libpath.length; i++) {
+ for (int j = 0; j < libnames.length; j++) {
+ File libfile = new File(libpath[i], libnames[j]);
+ if (libfile.exists()) {
+ libfound[j] = true;
+ }
+ }
+ }
+ assertTrue("kernel32 not found", libfound[0]);
+ assertTrue("advapi32 not found", libfound[1]);
+ assertTrue("msvcrt not found", libfound[2]);
+ if(!(libfound[3] || libfound[4])) {
+ fail("mfc42.lib or mfc70.lib not found");
+ }
+ }
+}