mirror of
https://github.com/corda/corda.git
synced 2025-01-01 02:36:44 +00:00
add jdk-test target, and fix failures
The intent of this target is to run our test suite against the installed jre. This should help prevent our VM from diverging in implementation from the jdk. The remainder of this commit fixes the problems that this exposes.
This commit is contained in:
parent
39e3850ed8
commit
47a7732a81
@ -67,7 +67,7 @@ public class Assembler {
|
||||
|
||||
write4(out, 0xCAFEBABE);
|
||||
write2(out, 0); // minor version
|
||||
write2(out, 0); // major version
|
||||
write2(out, 50); // major version
|
||||
|
||||
write2(out, pool.size() + 1);
|
||||
for (PoolEntry e: pool) {
|
||||
|
@ -11,10 +11,23 @@
|
||||
package avian;
|
||||
|
||||
import sun.misc.Unsafe;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
public abstract class Machine {
|
||||
|
||||
private static final Unsafe unsafe = Unsafe.getUnsafe();
|
||||
private static final Unsafe unsafe;
|
||||
|
||||
static {
|
||||
Unsafe u;
|
||||
try {
|
||||
Field f = Unsafe.class.getDeclaredField("theUnsafe");
|
||||
f.setAccessible(true);
|
||||
u = (Unsafe)f.get(null);
|
||||
} catch (Exception e) {
|
||||
u = null;
|
||||
}
|
||||
unsafe = u;
|
||||
}
|
||||
|
||||
public static native void dumpHeap(String outputFile);
|
||||
|
||||
|
@ -70,7 +70,7 @@ public class Handler extends URLStreamHandler {
|
||||
}
|
||||
|
||||
public int getContentLength() {
|
||||
return entry.getSize();
|
||||
return (int)entry.getSize();
|
||||
}
|
||||
|
||||
public InputStream getInputStream() throws IOException {
|
||||
|
@ -50,7 +50,7 @@ public class JarFile extends ZipFile {
|
||||
}
|
||||
}
|
||||
|
||||
public int getCompressedSize() {
|
||||
public long getCompressedSize() {
|
||||
try {
|
||||
return compressedSize(window, pointer);
|
||||
} catch (IOException e) {
|
||||
@ -58,7 +58,7 @@ public class JarFile extends ZipFile {
|
||||
}
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
public long getSize() {
|
||||
try {
|
||||
return uncompressedSize(window, pointer);
|
||||
} catch (IOException e) {
|
||||
|
@ -42,8 +42,8 @@ public class ZipEntry {
|
||||
int modTimeDate = -1;
|
||||
long millisTime = -1;
|
||||
int crc = -1;
|
||||
int compSize = 0;
|
||||
int uncompSize = 0;
|
||||
long compSize = 0;
|
||||
long uncompSize = 0;
|
||||
int offset = -1;
|
||||
|
||||
public ZipEntry(String name) {
|
||||
@ -191,12 +191,12 @@ public class ZipEntry {
|
||||
uncompSize = size;
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
public long getSize() {
|
||||
return uncompSize;
|
||||
}
|
||||
|
||||
//Methods to set and get the compressed size of the entry
|
||||
public void setCompressedSize(int size){
|
||||
public void setCompressedSize(long size){
|
||||
if (size < 0){
|
||||
return;
|
||||
}
|
||||
@ -204,7 +204,7 @@ public class ZipEntry {
|
||||
compSize = size;
|
||||
}
|
||||
|
||||
public int getCompressedSize() {
|
||||
public long getCompressedSize() {
|
||||
return compSize;
|
||||
}
|
||||
}
|
||||
|
@ -298,7 +298,7 @@ public class ZipFile {
|
||||
}
|
||||
}
|
||||
|
||||
public int getCompressedSize() {
|
||||
public long getCompressedSize() {
|
||||
try {
|
||||
return compressedSize(window, pointer);
|
||||
} catch (IOException e) {
|
||||
@ -306,7 +306,7 @@ public class ZipFile {
|
||||
}
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
public long getSize() {
|
||||
try {
|
||||
return uncompressedSize(window, pointer);
|
||||
} catch (IOException e) {
|
||||
|
@ -147,8 +147,8 @@ public class ZipOutputStream extends DeflaterOutputStream {
|
||||
|
||||
addFourBytes(DATA_DESCRIPTER_HEADER, 0, tmpBuffer); // data descripter header
|
||||
addFourBytes(currentEntry.crc, 4, tmpBuffer); // crc value
|
||||
addFourBytes(currentEntry.compSize, 8, tmpBuffer); // compressed size
|
||||
addFourBytes(currentEntry.uncompSize, 12, tmpBuffer);// uncompressed size
|
||||
addFourBytes((int)currentEntry.compSize, 8, tmpBuffer); // compressed size
|
||||
addFourBytes((int)currentEntry.uncompSize, 12, tmpBuffer);// uncompressed size
|
||||
out.write(tmpBuffer, 0, 16);
|
||||
bytesWritten += 16;
|
||||
}
|
||||
@ -164,8 +164,8 @@ public class ZipOutputStream extends DeflaterOutputStream {
|
||||
|
||||
addFourBytes(e.modTimeDate, 12, tmpBuffer); // last mod date and time
|
||||
addFourBytes(e.crc, 16, tmpBuffer); // crc
|
||||
addFourBytes(e.compSize, 20, tmpBuffer); // compressed size
|
||||
addFourBytes(e.uncompSize, 24, tmpBuffer); // uncompressed size
|
||||
addFourBytes((int)e.compSize, 20, tmpBuffer); // compressed size
|
||||
addFourBytes((int)e.uncompSize, 24, tmpBuffer); // uncompressed size
|
||||
|
||||
addTwoBytes(e.getName().length(), 28, tmpBuffer); // file name length
|
||||
|
||||
|
@ -5,10 +5,10 @@ import java.lang.reflect.Field;
|
||||
public final class Unsafe {
|
||||
private void Unsafe() { }
|
||||
|
||||
private static final Unsafe Instance = new Unsafe();
|
||||
private static final Unsafe theUnsafe = new Unsafe();
|
||||
|
||||
public static Unsafe getUnsafe() {
|
||||
return Instance;
|
||||
return theUnsafe;
|
||||
}
|
||||
|
||||
public native long allocateMemory(long bytes);
|
||||
|
11
makefile
11
makefile
@ -1451,6 +1451,10 @@ else
|
||||
ssh -p$(remote-test-port) $(remote-test-user)@$(remote-test-host) sh "$(remote-test-dir)/$(platform)-$(arch)$(options)/run-tests.sh"
|
||||
endif
|
||||
|
||||
.PHONY: jdk-test
|
||||
jdk-test: $(test-dep) $(build)/jdk-run-tests.sh $(build)/test.sh
|
||||
/bin/sh $(build)/jdk-run-tests.sh
|
||||
|
||||
PHONY: audit-baseline
|
||||
audit-baseline: $(audit-codegen-executable)
|
||||
$(<) -output $(build)/codegen-audit-output/baseline.o -format macho
|
||||
@ -1495,6 +1499,13 @@ $(build)/run-tests.sh: $(test-classes) makefile $(build)/extra-dir/multi-classpa
|
||||
echo "$(call class-names,$(test-build),$(filter-out $(test-support-classes), $(test-classes))) \\" >> $(@)
|
||||
echo "$(continuation-tests) $(tail-tests)" >> $(@)
|
||||
|
||||
$(build)/jdk-run-tests.sh: $(test-classes) makefile $(build)/extra-dir/multi-classpath-test.txt $(build)/test/multi-classpath-test.txt
|
||||
echo 'cd $$(dirname $$0)' > $(@)
|
||||
echo "sh ./test.sh 2>/dev/null \\" >> $(@)
|
||||
echo "$(shell echo $(library-path) | sed 's|$(build)|\.|g') /bin/true $(JAVA_HOME)/bin/java $(mode) \"-Djava.library.path=. -cp test:extra-dir:classpath\" \\" >> $(@)
|
||||
echo "$(call class-names,$(test-build),$(filter-out $(test-support-classes), $(test-classes))) \\" >> $(@)
|
||||
echo "$(continuation-tests) $(tail-tests)" >> $(@)
|
||||
|
||||
$(build)/extra-dir/multi-classpath-test.txt:
|
||||
mkdir -p $(build)/extra-dir
|
||||
echo "$@" > $@
|
||||
|
@ -70,7 +70,7 @@ public class LazyLoading {
|
||||
if (loadLazy) {
|
||||
return findClass(name);
|
||||
} else {
|
||||
throw new ClassNotFoundException();
|
||||
throw new ClassNotFoundException(name);
|
||||
}
|
||||
} else {
|
||||
return super.loadClass(name);
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
make ${flags} jdk-test
|
||||
make ${flags} test
|
||||
make ${flags} mode=debug test
|
||||
make ${flags} process=interpret test
|
||||
|
Loading…
Reference in New Issue
Block a user