summaryrefslogtreecommitdiff
path: root/solenv/inc/javaunittest.mk
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/inc/javaunittest.mk')
-rw-r--r--solenv/inc/javaunittest.mk107
1 files changed, 107 insertions, 0 deletions
diff --git a/solenv/inc/javaunittest.mk b/solenv/inc/javaunittest.mk
new file mode 100644
index 000000000000..e129052a445e
--- /dev/null
+++ b/solenv/inc/javaunittest.mk
@@ -0,0 +1,107 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+# Makefile template for directories that contain Java unit tests.
+#
+# Before including this makefile, the following variables should be set:
+# - PRJ, PRJNAME, TARGET
+# - PACKAGE
+# - JAVATESTFILES: the unit test classes;
+# each one of the form <basename>.java;
+# these java files must only define classes within the package corresponding
+# to PACKAGE, the name of each defined (outer) class should end with "_Test"
+# - JAVAFILES: optional java files, corresponding class files are generated
+# that can be used when compiling or running the tests;
+# each one of the form <basename>.java;
+# these java files must only define classes within the package corresponding
+# to PACKAGE, the name of each defined (outer) class should start with
+# "Test"
+# - IDLTESTFILES: optional idl files, corresponding class files are generated
+# that can be used when compiling or running the tests;
+# each one of the form <basename>.idl;
+# these idl files must only define entities within the module corresponding
+# to PACKAGE, the name of each defined entity should start with "Test"
+# - JARFILES: optional jar files that can be used when compiling or running the
+# tests;
+# each one of the form <basename>.jar
+# All generated class files are placed into <platform>/class/test/ instead of
+# <platform>/class/, so that they are not accidentally included in jar files
+# packed from <platform>/class/ subdirectories.
+
+TESTS := $(subst,.java,.test $(JAVATESTFILES))
+JAVAFILES +:= $(JAVATESTFILES)
+JARFILES +:= OOoRunner.jar
+
+.INCLUDE: settings.mk
+
+.IF "$(XCLASSPATH)" == ""
+XCLASSPATH := $(CLASSDIR)
+.ELSE
+XCLASSPATH !:= $(XCLASSPATH)$(PATH_SEPERATOR)$(CLASSDIR)
+.ENDIF
+CLASSDIR !:= $(CLASSDIR)/test
+
+.INCLUDE: target.mk
+
+ALLTAR: $(TESTS)
+
+$(JAVAFILES): $(MISC)/$(TARGET).classdir.flag
+
+$(MISC)/$(TARGET).classdir.flag:
+ - $(MKDIR) $(CLASSDIR)
+ $(TOUCH) $@
+
+.IF "$(TESTS)" != ""
+$(TESTS): $(JAVACLASSFILES)
+.ENDIF
+
+%.test .PHONY: %.java
+ $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) $(CLASSPATH) org.openoffice.Runner \
+ -TestBase java_complex -NoOffice yes \
+ -o $(subst,/,. $(subst,.test, $(PACKAGE).$@))
+
+.IF "$(IDLTESTFILES)" != ""
+
+# The following dependency (to execute javac whenever javamaker has run) does
+# not work reliably, see #i28827#:
+$(JAVAFILES) $(JAVACLASSFILES): $(MISC)/$(TARGET).javamaker.flag
+
+$(MISC)/$(TARGET).javamaker.flag: $(MISC)/$(TARGET).rdb
+ $(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD $< -X$(SOLARBINDIR)/types.rdb
+ $(TOUCH) $@
+
+$(MISC)/$(TARGET).rdb .ERRREMOVE: \
+ $(foreach,i,$(IDLTESTFILES) $(subst,.idl,.urd $(MISC)/$(TARGET)/$i))
+ - rm $@
+ $(REGMERGE) $@ /UCR $<
+
+$(foreach,i,$(IDLTESTFILES) $(subst,.idl,.urd $(MISC)/$(TARGET)/$i)): \
+ $(IDLTESTFILES)
+ - $(MKDIR) $(MISC)/$(TARGET)
+ $(IDLC) -O$(MISC)/$(TARGET) -I$(SOLARIDLDIR) -cid -we $<
+
+.ENDIF