Skip to content

Commit

Permalink
Remove IBM-1047 export options and create test config files in EBCDIC…
Browse files Browse the repository at this point in the history
… for JDK21+ on z/OS

Signed-off-by: Pasam Soujanya <[email protected]>
  • Loading branch information
psoujany committed Dec 12, 2024
1 parent 751ecc8 commit cb2079d
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 22 deletions.
8 changes: 0 additions & 8 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,8 @@ endif

UNAME := uname
UNAME_OS := $(shell $(UNAME) -s | cut -f1 -d_)
$(info UNAME_OS is $(UNAME_OS))
ifeq ($(findstring CYGWIN,$(UNAME_OS)), CYGWIN)
LIB_DIR:=$(shell cygpath -w $(LIB_DIR))
else ifeq ($(UNAME_OS),OS/390)
# The issue is still being investigated. See backlog/issues/1424
# set -Dfile.encoding=IBM-1047 for JDK21+ zOS for now
ifeq ($(shell test $(JDK_VERSION) -ge 21; echo $$?),0)
export IBM_JAVA_OPTIONS="-Dfile.encoding=IBM-1047"
$(info export IBM_JAVA_OPTIONS="-Dfile.encoding=IBM-1047")
endif
endif

export LIB_DIR:=$(subst \,/,$(LIB_DIR))
Expand Down
10 changes: 4 additions & 6 deletions src/org/openj9/envInfo/EnvDetector.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@

package org.openj9.envInfo;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.Writer;

public class EnvDetector {
static boolean isMachineInfo = false;
Expand Down Expand Up @@ -80,9 +78,9 @@ private static void getJavaInfo() {
/**
* autoGenEnv.mk file will be created to store auto detected java info.
*/
BufferedWriter output = null;
Writer output = null;
try {
output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("autoGenEnv.mk")));
output = Utility.getWriterObject(javaVersionInfo, SPECInfo, "autoGenEnv.mk");
output.write("########################################################\n");
output.write("# This is an auto generated file. Please do NOT modify!\n");
output.write("########################################################\n");
Expand All @@ -94,7 +92,7 @@ private static void getJavaInfo() {
output.write(JDK_VENDOR);
output.write(TEST_FLAG);
output.close();
output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("AQACert.log")));
output = Utility.getWriterObject(javaVersionInfo, SPECInfo, "AQACert.log");
output.write(JAVA_VERSION);
output.write(RELEASE_INFO);
output.close();
Expand Down
27 changes: 27 additions & 0 deletions src/org/openj9/envInfo/Utility.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.openj9.envInfo;

import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.nio.charset.Charset;

public class Utility {

public static Writer writer;

public static Writer getWriterObject(int jdkVersion, String SpecInfo, String fileName) {
try {
if (SpecInfo.toLowerCase().contains("zos") && (jdkVersion >= 21)) {
writer = new OutputStreamWriter(new FileOutputStream(fileName, true), Charset.forName("IBM-1047"));
} else {
writer = new FileWriter(fileName, true);
}
} catch(IOException e) {
e.printStackTrace();
System.exit(1);
}
return writer;
}
}
13 changes: 9 additions & 4 deletions src/org/testKitGen/MkGen.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,18 @@

package org.testKitGen;

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.openj9.envInfo.JavaInfo;
import org.openj9.envInfo.Utility;

public class MkGen {
private Arguments arg;
private JavaInfo jInfo;
private TestTarget tt;
private List<String> dirList;
private List<String> subdirs;
Expand All @@ -30,6 +34,7 @@ public class MkGen {

public MkGen(Arguments arg, TestTarget tt, PlaylistInfo pli, String makeFile, List<String> dirList, List<String> subdirs) {
this.arg = arg;
this.jInfo = new JavaInfo();
this.tt = tt;
this.dirList = dirList;
this.subdirs = subdirs;
Expand All @@ -46,7 +51,7 @@ public void start() {
}

private void writeVars() {
try (FileWriter f = new FileWriter(makeFile)) {
try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), makeFile)) {
String realtiveRoot = "";
int subdirlevel = dirList.size();
if (subdirlevel == 0) {
Expand All @@ -72,7 +77,7 @@ private void writeVars() {
}
}

private void writeSingleTest(List<String> testsInPlaylist, TestInfo testInfo, FileWriter f) throws IOException {
private void writeSingleTest(List<String> testsInPlaylist, TestInfo testInfo, Writer f) throws IOException {
for (Variation var : testInfo.getVars()) {
// Generate make target
String testTargetName = var.getSubTestName();
Expand Down Expand Up @@ -227,7 +232,7 @@ private void writeSingleTest(List<String> testsInPlaylist, TestInfo testInfo, Fi
}

private void writeTargets() {
try (FileWriter f = new FileWriter(makeFile, true)) {
try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), makeFile)) {
if (!pli.getIncludeList().isEmpty()) {
for (String include : pli.getIncludeList()) {
f.write("-include " + include + "\n\n");
Expand Down
2 changes: 1 addition & 1 deletion src/org/testKitGen/ModesDictionary.java
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ private void parseInvalidSpec(Element modes) throws IOException {
ArrayList<String> specs = new ArrayList<String>();
int lineNum = 0;
BufferedReader reader = null;
if (arg.getSpec().toLowerCase().contains("zos")) {
if (arg.getSpec().toLowerCase().contains("zos") && !(arg.getJdkVersion().matches("[2-9][0-9]"))) {
reader = Files.newBufferedReader(Paths.get(ottawaCsv), Charset.forName("IBM-1047"));
} else {
reader = Files.newBufferedReader(Paths.get(ottawaCsv));
Expand Down
11 changes: 8 additions & 3 deletions src/org/testKitGen/UtilsGen.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,25 @@
package org.testKitGen;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.List;

import org.openj9.envInfo.JavaInfo;
import org.openj9.envInfo.Utility;;

public class UtilsGen {
private Arguments arg;
private ModesDictionary md;
private JavaInfo jInfo;
private String utilsMk;
private String rerunMk;
private List<String> ignoreOnRerunList;

public UtilsGen(Arguments arg, ModesDictionary md, List<String> ignoreOnRerunList) {
this.arg = arg;
this.md = md;
this.jInfo = new JavaInfo();
this.utilsMk = arg.getProjectRootDir() + "/TKG/" + Constants.UTILSMK;
this.rerunMk = arg.getProjectRootDir() + "/TKG/" + Constants.RERUNMK;
this.ignoreOnRerunList = ignoreOnRerunList;
Expand All @@ -40,7 +45,7 @@ public void generateFiles() {
}

private void generateUtil() {
try (FileWriter f = new FileWriter(utilsMk)) {
try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), utilsMk)) {
f.write(Constants.HEADERCOMMENTS);
f.write("TOTALCOUNT := " + TestInfo.numOfTests() + "\n");
f.write("PLATFORM=\n");
Expand All @@ -56,7 +61,7 @@ private void generateUtil() {
}

private void generateRerun() {
try (FileWriter f = new FileWriter(rerunMk)) {
try (Writer f = Utility.getWriterObject(jInfo.getJDKVersion(), arg.getSpec(), rerunMk)) {
f.write(Constants.HEADERCOMMENTS);
String ignoreOnRerunStr = String.join(",", ignoreOnRerunList);
f.write("IGNORE_ON_RERUN=");
Expand Down

0 comments on commit cb2079d

Please sign in to comment.