Skip to content

Commit

Permalink
initial commit of jvm tests
Browse files Browse the repository at this point in the history
  • Loading branch information
rasibley authored and veruu committed Jul 11, 2019
1 parent feb7044 commit c430690
Show file tree
Hide file tree
Showing 4 changed files with 136 additions and 0 deletions.
54 changes: 54 additions & 0 deletions jvm/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Copyright (c) 2019 Red Hat, Inc. All rights reserved. This copyrighted material
# is made available to anyone wishing to use, modify, copy, or
# redistribute it subject to the terms and conditions of the GNU General
# Public License v.2.
#
# This program 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 for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#

TOPLEVEL_NAMESPACE=kernel
PACKAGE_NAME=java

export TESTVERSION=1.0
export TEST=/$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)

BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE

.PHONY: all install download clean

run: $(FILES) build
./runtest.sh

build: $(BUILT_FILES)
chmod a+x runtest.sh

clean:
rm -f *~ $(BUILT_FILES)

# Include Common Makefile
include /usr/share/rhts/lib/rhts-make.include

# Generate the testinfo.desc here:
$(METADATA): Makefile
@touch $(METADATA)
@echo "Owner: Christine Flood <[email protected]>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: jvm tests" >> $(METADATA)
@echo "TestTime: 30m" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "RunFor: $(TOPLEVEL_NAMESPACE)" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Requires: maven" >> $(METADATA)
@echo "Requires: java" >> $(METADATA)
@echo "Requires: wget" >> $(METADATA)
12 changes: 12 additions & 0 deletions jvm/PURPOSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
The main purpose of this script is to ensure the kernel doesn't break java
by verifying java is working appropriately through the following upstream
test suites:

The Java Concurrency Stress tests (jcstress) is an experimental harness and a suite of tests
to aid the research in the correctness of concurrency support in the JVM, class libraries,
and hardware.
For more details see https://wiki.openjdk.java.net/display/CodeTools/jcstress

This benchmark suite is intended as a tool for Java benchmarking by the programming language,
memory management and computer architecture communities, fore more details see
http://dacapobench.sourceforge.net/
19 changes: 19 additions & 0 deletions jvm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# jvm tests
The Java Concurrency Stress tests (jcstress) is an experimental harness and a suite of tests
to aid the research in the correctness of concurrency support in the JVM, class libraries,
and hardware.
For more details see https://wiki.openjdk.java.net/display/CodeTools/jcstress

This benchmark suite is intended as a tool for Java benchmarking by the programming
language, memory management and computer architecture communities.
http://dacapobench.sourceforge.net/

Test Maintainer: [Christine Flood](mailto:[email protected])

## How to run it
Please refer to the top-level README.md for common dependencies. Test-specific dependencies will automatically be installed when executing 'make run'. For a complete detail, see PURPOSE file.

### Execute the test
```bash
$ make run
```
51 changes: 51 additions & 0 deletions jvm/runtest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/bash

#--------------------------------------------------------------------------------
# Copyright (c) 2019 Red Hat, Inc. All rights reserved. This copyrighted material
# is made available to anyone wishing to use, modify, copy, or
# redistribute it subject to the terms and conditions of the GNU General
# Public License v.2.
#
# This program 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 for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
#---------------------------------------------------------------------------------
# This script downloads a jar test file
# and executes the test against localhost

# See https://github.com/guozheng/jmh-tutorial/blob/master/README.md
# for more information.
#---------------------------------------------------------------------------------

# Source the common test script helpers
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1

rlJournalStart
# Run DaCapo Benchmarks
rlPhaseStartTest
rlRun -l "wget https://gitlab.com/cki-project/lookaside/raw/master/dacapo-9.12-MR1-bach.jar"
if [ $? -ne 0 ]; then
rhts-abort -t recipe
exit 0
fi
rlRun -l "java -jar dacapo-9.12-MR1-bach.jar eclipse jython lusearch-fix"
rlPhaseEnd

# Run jcstress test
rlPhaseStartTest
rlRun -l "mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=org.openjdk.jcstress \
-DarchetypeArtifactId=jcstress-java-test-archetype -DgroupId=org.sample \
-DartifactId=test -Dversion=1.0"
rlRun -l "cd test"
rlRun -l "mvn clean install"
rlRun -l "java -jar target/jcstress.jar"
rlPhaseEnd

rlJournalEnd
rlJournalPrintText

0 comments on commit c430690

Please sign in to comment.