#
# Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code 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 General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

#----------------------------------------------------------------------

GroupTest.GROUPS := $(shell $(GREP) -h '=' \
	$(TESTDIR)/groups/TEST.group* | \
	$(AWK) '{print $$1}' | $(SORT) -unk 1.2 )

$(BUILDTESTDIR)/GroupTest.ok: $(GroupTest.GROUPS:%=$(BUILDTESTDIR)/GroupTest.%.ok)
	echo $@ passed at `date` > $@

$(GroupTest.GROUPS:%=$(BUILDTESTDIR)/GroupTest.%.ok): \
	$(JTREG_IMAGEDIR)/lib/jtreg.jar \
	$(JTREG_IMAGEDIR)/bin/jtreg
	$(MKDIR) -p $(@:%.ok=%)
	$(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \
		-w:$(@:%.ok=%)/work -r:$(@:%.ok=%)/report \
		-jdk:$(JDKHOME) \
		$(TESTDIR)/groups:$(@:$(BUILDTESTDIR)/GroupTest.%.ok=%) ; \
	status=$$? ; echo status=$$status ; \
	case "$(@:$(BUILDTESTDIR)/GroupTest.%.ok=%)" in \
		g6 )  expect=1 ;; \
		g10|g11|g12 ) expect=5 ;; \
		* ) expect=0 ;; \
	esac ; \
	if [ "$$status" != "$$expect" ]; then echo "unexpected exit: $$status" ; exit 1; fi
	echo $@ passed at `date` > $@

TESTS.jtreg += $(BUILDTESTDIR)/GroupTest.ok

$(BUILDTESTDIR)/ShowGroupTest.ok: \
	$(JTREG_IMAGEDIR)/lib/jtreg.jar \
	$(JTREG_IMAGEDIR)/bin/jtreg
	$(MKDIR) -p $(@:%.ok=%)
	$(JTREG_IMAGEDIR)/bin/jtreg $(JTREG_OPTS) \
		-w:$(@:%.ok=%)/work -r:$(@:%.ok=%)/report \
		-jdk:$(JDKHOME) \
                -showGroups \
		$(TESTDIR)/groups \
                > $(@:%.ok=%)/jt.log 2>&1
	$(GREP) '^g3[0-9]' $(@:%.ok=%)/jt.log > $(@:%.ok=%)/g3.found
	$(GREP) '^# g3[0-9]*' $(TESTDIR)/groups/TEST.groups3 \
	        | $(SED) -e 's/# //' > $(@:%.ok=%)/g3.expect
	$(DIFF) --strip-trailing-cr $(@:%.ok=%)/g3.expect $(@:%.ok=%)/g3.found
	echo $@ passed at `date` > $@

TESTS.jtreg += $(BUILDTESTDIR)/ShowGroupTest.ok
