Skip to content

Commit e99075d

Browse files
committed
some debug in testing
1 parent 891cbd5 commit e99075d

File tree

6 files changed

+35
-3
lines changed

6 files changed

+35
-3
lines changed

docs/Coverage.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Coverage
2+
3+
The current api stubs cover most of the commonly used and easy `java.base` functions.
4+
See [Bytecode Manipulation](./Bytecode%20Manipulation.md) for more details on how.
5+
6+
Some stubs should be fairly easy to add while others are more difficult.
7+
8+
Some functions that access internals may not work on non OpenJDK java implementations.
9+
10+
There are multiple API areas that aren't currently present for various reasons,
11+
mostly due to their difficulty to reproduce; due to either size or complexity.
12+
reproducing an api requires implementing it myself due to the difference in license;
13+
You can't just copy everything from the existing implementation.
14+
15+
for example:
16+
17+
* [FFM/FFI](https://docs.oracle.com/en/java/javase/21/core/foreign-function-and-memory-api.html)
18+
* it's big
19+
* it uses natives
20+
* would probably need to be on top of [JNA](https://github.com/java-native-access/jna) to implement easiest
21+
* [ClassFile](https://docs.oracle.com/en/java/javase/22/vm/class-file-api.html)
22+
* it's big
23+
* [Unix Sockets](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/net/UnixDomainSocketAddress.html)
24+
* hard to add to the socket creation function
25+
* hard to actually implement without natives
26+

src/main/java/xyz/wagyourtail/jvmdg/cli/Flags.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ public Flags copy() {
145145
flags.printDebug = printDebug;
146146
flags.debugSkipStub = new HashSet<>(debugSkipStub);
147147
flags.debugSkipStubs = new HashSet<>(debugSkipStubs);
148+
flags.debugNoSynthetic = debugNoSynthetic;
148149
flags.debugDumpClasses = debugDumpClasses;
149150
flags.multiReleaseOriginal = multiReleaseOriginal;
150151
flags.multiReleaseVersions = new HashSet<>(multiReleaseVersions);

src/shared/java/xyz/wagyourtail/jvmdg/util/Utils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public static int getCurrentClassVersion() {
140140

141141
public static int classVersionToMajorVersion(int version) {
142142
if (version == Opcodes.V1_1) return 1;
143-
else return version - Opcodes.V1_2 + 2;
143+
else return (version & 0xFFFF) - Opcodes.V1_2 + 2;
144144
}
145145

146146
public static int majorVersionToClassVersion(int version) {

testing/src/test/java/xyz/wagyourtail/jvmdg/test/integration/BaseIntegrationTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public abstract class BaseIntegrationTests {
3333

3434
static {
3535
flags.api = List.of(javaApi.toFile());
36+
flags.debugNoSynthetic = true;
3637
}
3738

3839
private static <T, U> Stream<Map.Entry<T, U>> zip(Stream<T> a, Stream<U> b) {

testing/src/test/java/xyz/wagyourtail/jvmdg/test/integration/DowngradeTests.java renamed to testing/src/test/java/xyz/wagyourtail/jvmdg/test/integration/impl/DowngradeTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.wagyourtail.jvmdg.test.integration;
1+
package xyz.wagyourtail.jvmdg.test.integration.impl;
22

33
import org.apache.commons.io.function.IOStream;
44
import org.junit.jupiter.api.BeforeAll;
@@ -16,6 +16,8 @@
1616
import xyz.wagyourtail.jvmdg.compile.ZipDowngrader;
1717
import xyz.wagyourtail.jvmdg.logging.Logger;
1818
import xyz.wagyourtail.jvmdg.test.JavaRunner;
19+
import xyz.wagyourtail.jvmdg.test.integration.BaseIntegrationTests;
20+
import xyz.wagyourtail.jvmdg.test.integration.FlagsAndRunner;
1921
import xyz.wagyourtail.jvmdg.util.Utils;
2022

2123
import java.io.File;

testing/src/test/java/xyz/wagyourtail/jvmdg/test/integration/MultiVersionTests.java renamed to testing/src/test/java/xyz/wagyourtail/jvmdg/test/integration/impl/MultiVersionTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package xyz.wagyourtail.jvmdg.test.integration;
1+
package xyz.wagyourtail.jvmdg.test.integration.impl;
22

33
import org.apache.commons.io.function.IOStream;
44
import org.junit.jupiter.api.BeforeAll;
@@ -12,6 +12,8 @@
1212
import xyz.wagyourtail.jvmdg.ClassDowngrader;
1313
import xyz.wagyourtail.jvmdg.compile.ZipDowngrader;
1414
import xyz.wagyourtail.jvmdg.test.JavaRunner;
15+
import xyz.wagyourtail.jvmdg.test.integration.BaseIntegrationTests;
16+
import xyz.wagyourtail.jvmdg.test.integration.FlagsAndRunner;
1517
import xyz.wagyourtail.jvmdg.util.Utils;
1618

1719
import java.io.IOException;

0 commit comments

Comments
 (0)