Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
75caaed
Create swift-lexer.yml
ericvergnaud Jan 11, 2021
3134b32
Create run-tests-swift.sh
ericvergnaud Jan 11, 2021
e34e563
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
e19d3a8
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
674bec6
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
28586e4
chmod script
ericvergnaud Jan 11, 2021
307d3fd
chmod script
ericvergnaud Jan 11, 2021
368d6d3
fix typo
ericvergnaud Jan 11, 2021
b3c8162
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
a6870d4
chmod script
ericvergnaud Jan 11, 2021
73972a1
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
5eff9ce
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
3a6ed65
Update run-tests-swift.sh
ericvergnaud Jan 11, 2021
7ec9444
Update run-tests-swift.sh
ericvergnaud Jan 11, 2021
60eba0a
Update run-tests-swift.sh
ericvergnaud Jan 11, 2021
9c8b251
Update run-tests-swift.sh
ericvergnaud Jan 11, 2021
906f66f
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
670f7fd
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
4a4c1cb
Update run-tests-swift.sh
ericvergnaud Jan 11, 2021
33c3c78
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
9df23ce
Update swift-lexer.yml
ericvergnaud Jan 11, 2021
78061d4
Update run-tests-swift.sh
ericvergnaud Jan 12, 2021
68ec85c
Update run-tests-swift.sh
ericvergnaud Jan 12, 2021
c774ad7
Update run-tests-swift.sh
ericvergnaud Jan 12, 2021
34ff4be
Update run-tests-swift.sh
ericvergnaud Jan 12, 2021
dedcc11
Update run-tests-swift.sh
ericvergnaud Jan 12, 2021
18a6341
Update run-tests-swift.sh
ericvergnaud Jan 12, 2021
9b158b8
try java tests
ericvergnaud Jan 12, 2021
1054d9c
Update java-all.yml
ericvergnaud Jan 12, 2021
501eae8
Update java-all.yml
ericvergnaud Jan 13, 2021
e3f2b49
only run heartbeat when necessary (otherwise build hangs)
ericvergnaud Jan 21, 2021
5923085
kill hung process
ericvergnaud Jan 21, 2021
d2045f1
Merge remote-tracking branch 'origin/master' into self-hosted-github-ci
ericvergnaud Jan 21, 2021
6849e6f
Update run-tests-swift.sh
ericvergnaud Jan 21, 2021
5ab1314
Update run-tests-swift.sh
ericvergnaud Jan 21, 2021
6d930ab
Update run-tests-swift.sh
ericvergnaud Jan 21, 2021
513c37f
Create mac-action-runner-readme.txt
ericvergnaud Jan 21, 2021
4f5e5a7
try prefixing swift cmd with arch
ericvergnaud Jan 21, 2021
8290cbb
try again
ericvergnaud Jan 21, 2021
591ea5b
try locate generated binaries
ericvergnaud Jan 21, 2021
416976d
fix crash
ericvergnaud Jan 21, 2021
b8d28f4
try from script
ericvergnaud Jan 21, 2021
95480d1
keep trying
ericvergnaud Jan 21, 2021
b841a85
keep trying
ericvergnaud Jan 21, 2021
18676a3
in progress!
ericvergnaud Jan 21, 2021
3167fbb
let's see how it goes...
ericvergnaud Jan 21, 2021
51a9b46
fix failing build
ericvergnaud Jan 21, 2021
e259591
more logs
ericvergnaud Jan 21, 2021
8c5d0d0
more logs
ericvergnaud Jan 21, 2021
c8275cf
more logs
ericvergnaud Jan 21, 2021
c885abd
finally ?
ericvergnaud Jan 21, 2021
6b999f3
grrrr
ericvergnaud Jan 21, 2021
c11a1df
let's see if maven is the culprit
ericvergnaud Jan 22, 2021
363524f
fix warnings when compiling swift runtime
ericvergnaud Jan 22, 2021
3b39459
Merge branch 'fix-swift-warnings' into self-hosted-github-ci
ericvergnaud Jan 22, 2021
4dfee85
more warnings gone
ericvergnaud Jan 22, 2021
3783db2
Merge branch 'fix-swift-warnings' into self-hosted-github-ci
ericvergnaud Jan 22, 2021
35a25ab
works with 1 class, how about many?
ericvergnaud Jan 22, 2021
a09e221
more warnings gone
ericvergnaud Jan 22, 2021
c5ea867
Merge branch 'fix-swift-warnings' into self-hosted-github-ci
ericvergnaud Jan 22, 2021
624d9c5
less noise
ericvergnaud Jan 22, 2021
22745b5
Revert "more warnings gone"
ericvergnaud Jan 22, 2021
20bc59c
Merge branch 'fix-swift-warnings' into self-hosted-github-ci
ericvergnaud Jan 22, 2021
5b7a463
Merge commit '10958043880b0f36d6ef056770a16f0128162406' into self-hos…
ericvergnaud Jan 22, 2021
007f795
try matrix
ericvergnaud Jan 22, 2021
6b25b91
fix failing build
ericvergnaud Jan 22, 2021
b158999
don't fail fast
ericvergnaud Jan 22, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/scripts/mac-action-runner-readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Sharing the trouble of getting github action runners to work on a mac coming straight out of the factory, running Big Sur

XCode (you need XCode to build the Swift runtime):
- install XCode from the Mac App Store
- Launch it, this will force installation of components
- Go to Preferences -> Locations and select XCode as Command Line Tools

Brew (you need Brew to install maven):
- get the script from https://brew.sh
- once installed, run the following:
echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/{user-account}/.zprofile
eval $(/opt/homebrew/bin/brew shellenv)
(you need to repeat these last steps for each user account)

Maven (supposedly installed by the github workflow, but it's convenient to have a global install for troubleshooting):
- brew install maven

JDK (we need a specific JDK):
- download openjdk8 from Oracle (later versions break the build due to some packages having disappeared)
- install it -> this will mess up your JAVA_HOME completely, pointing to /Library/Internet...
- fix the JAVA_HOME mess as follows:
sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane
25 changes: 25 additions & 0 deletions .github/scripts/run-tests-java.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

set -euo pipefail

if [ -z "${JAVA_HOME-}" ]
then
export JAVA_HOME="$(java -XshowSettings:properties -version 2>&1 |
grep 'java\.home' | awk '{ print $3 }')"
echo "export JAVA_HOME=$JAVA_HOME"
fi

# run java tests
cd runtime-testsuite/
if [ $GROUP == "LEXER" ]; then
mvn -X -e -q -Dgroups="org.antlr.v4.test.runtime.category.LexerTests" -Dtest="swift.*" test
elif [ $GROUP == "PARSER" ]; then
mvn -q -Dgroups="org.antlr.v4.test.runtime.category.ParserTests" -Dtest="swift.*" test
elif [ $GROUP == "RECURSION" ]; then
mvn -q -Dgroups="org.antlr.v4.test.runtime.category.LeftRecursionTests" -Dtest="swift.*" test
else
mvn -q -Dtest="java.*" test
fi
rc=$?
cat target/surefire-reports/*.dumpstream || true
exit $rc
50 changes: 50 additions & 0 deletions .github/scripts/run-tests-swift.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/bin/bash

set -euo pipefail

# linux specific setup, those setup have to be
# here since environment variables doesn't pass
# across scripts
if [ $RUNNER_OS == "Linux" ]; then
export SWIFT_VERSION=swift-5.0.1
export SWIFT_HOME=$(pwd)/swift/$SWIFT_VERSION-RELEASE-ubuntu16.04/usr/bin/
export PATH=$SWIFT_HOME:$PATH

# download swift
mkdir swift
curl https://swift.org/builds/$SWIFT_VERSION-release/ubuntu1604/$SWIFT_VERSION-RELEASE/$SWIFT_VERSION-RELEASE-ubuntu16.04.tar.gz -s | tar xz -C swift &> /dev/null
fi

if [ -z "${JAVA_HOME}" ]
then
export JAVA_HOME="$(java -XshowSettings:properties -version 2>&1 |
grep 'java\.home' | awk '{ print $3 }')"
fi
echo "export JAVA_HOME=$JAVA_HOME"

# check swift
swift --version
swift build --version

# run swift tests
pushd runtime/Swift
./boot.py --test
rc=$?
popd

if [ $rc == 0 ]; then
# run java tests
cd runtime-testsuite/
if [ $GROUP == "LEXER" ]; then
mvn -e -q -Dgroups="org.antlr.v4.test.runtime.category.LexerTests" -Dtest="swift.*" test
elif [ $GROUP == "PARSER" ]; then
mvn -e -q -Dgroups="org.antlr.v4.test.runtime.category.ParserTests" -Dtest="swift.*" test
elif [ $GROUP == "RECURSION" ]; then
mvn -e -q -Dgroups="org.antlr.v4.test.runtime.category.LeftRecursionTests" -Dtest="swift.*" test
else
mvn -e -q -Dtest=swift.* test
fi
rc=$?
cat target/surefire-reports/*.dumpstream || true
fi
exit $rc
28 changes: 28 additions & 0 deletions .github/workflows/java-all.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Java/MacOSX

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build:
runs-on: [self-hosted, macOS, x64]
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Set up Maven
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.5.4
- name: Build tool with Maven
run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
- name: Test with Maven
run: .github/scripts/run-tests-java.sh
env:
TARGET: swift
GROUP: ALL
35 changes: 35 additions & 0 deletions .github/workflows/swift-macosx.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Swift/MacOSX

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build:
runs-on: [self-hosted, macOS, x64]
strategy:
fail-fast: false
matrix:
include:
- GROUP: LEXER
- GROUP: PARSER
- GROUP: RECURSION
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Set up Maven
uses: stCarolas/setup-maven@v4
with:
maven-version: 3.5.4
- name: Build tool with Maven
run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
- name: Test with Maven
run: arch -x86_64 .github/scripts/run-tests-swift.sh
env:
TARGET: swift
GROUP: ${{ matrix.GROUP }}
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@
import org.antlr.v4.runtime.misc.Utils;
import org.antlr.v4.tool.ANTLRMessage;
import org.antlr.v4.tool.DefaultToolListener;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.*;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
Expand Down Expand Up @@ -44,6 +42,7 @@
* @since 4.6.
*/
public abstract class BaseRuntimeTest {

public final static String[] Targets = {
"Cpp",
"CSharp",
Expand All @@ -56,18 +55,43 @@ public abstract class BaseRuntimeTest {
"Swift"
};

static {
// Add heartbeat thread to gen minimal output for travis, appveyor to
// avoid timeout.
@BeforeClass
public static void startHeartbeatToAvoidTimeout() {
if (isTravisCI() || isAppVeyorCI())
startHeartbeat();
}

@AfterClass
public static void stopHeartbeat() {
heartbeat = false;
}

private static boolean isAppVeyorCI() {
// see https://www.appveyor.com/docs/environment-variables/
String s = System.getenv("APPVEYOR");
return s!=null && "true".equals(s.toLowerCase());
}

private static boolean isTravisCI() {
// see https://docs.travis-ci.com/user/environment-variables/#default-environment-variables
String s = System.getenv("TRAVIS");
return s!=null && "true".equals(s.toLowerCase());
}

static boolean heartbeat = false;

private static void startHeartbeat() {
// Add heartbeat thread to gen minimal output for travis, appveyor to avoid timeout.
Thread t = new Thread("heartbeat") {
@Override
public void run() {
while (true) {
heartbeat = true;
while (heartbeat) {
System.out.print('.');
try {
//noinspection BusyWait
Thread.sleep(5000);
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
}
}
Expand Down Expand Up @@ -118,18 +142,20 @@ protected void succeeded(Description description) {

@Test
public void testOne() throws Exception {
// System.out.println(descriptor.getTestName());
// System.out.println(delegate.getTmpDir());
if (descriptor.ignore(descriptor.getTarget()) ) {
System.out.println("Ignore " + descriptor);
return;
}

delegate.beforeTest(descriptor);
if (descriptor.getTestType().contains("Parser") ) {
testParser(descriptor);
}
else {
testLexer(descriptor);
}
delegate.afterTest(descriptor);
}

public void testParser(RuntimeTestDescriptor descriptor) throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,7 @@ String execParser(String grammarFileName,
String startRuleName,
String input,
boolean showDiagnosticErrors);

void beforeTest(RuntimeTestDescriptor descriptor);
void afterTest(RuntimeTestDescriptor descriptor);
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.semantics.SemanticPipeline;
import org.antlr.v4.test.runtime.ErrorQueue;
import org.antlr.v4.test.runtime.RuntimeTestDescriptor;
import org.antlr.v4.test.runtime.RuntimeTestSupport;
import org.antlr.v4.test.runtime.StreamVacuum;
import org.antlr.v4.tool.ANTLRMessage;
Expand Down Expand Up @@ -111,6 +112,14 @@ public void testSetUp() throws Exception {
public void testTearDown() throws Exception {
}

@Override
public void beforeTest(RuntimeTestDescriptor descriptor) {
}

@Override
public void afterTest(RuntimeTestDescriptor descriptor) {
}

@Override
public String getTmpDir() {
return tmpdir;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@
import org.antlr.v4.runtime.TokenSource;
import org.antlr.v4.runtime.WritableToken;
import org.antlr.v4.runtime.misc.Utils;
import org.antlr.v4.test.runtime.ErrorQueue;
import org.antlr.v4.test.runtime.RuntimeTestSupport;
import org.antlr.v4.test.runtime.StreamVacuum;
import org.antlr.v4.test.runtime.TestOutputReading;
import org.antlr.v4.test.runtime.*;
import org.antlr.v4.tool.ANTLRMessage;
import org.antlr.v4.tool.GrammarSemanticsMessage;
import org.junit.rules.TestRule;
Expand Down Expand Up @@ -143,6 +140,14 @@ public void testSetUp() throws Exception {
public void testTearDown() throws Exception {
}

@Override
public void beforeTest(RuntimeTestDescriptor descriptor) {
}

@Override
public void afterTest(RuntimeTestDescriptor descriptor) {
}

@Override
public String getTmpDir() {
return tmpdir;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,7 @@
import org.antlr.v4.runtime.misc.Pair;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.semantics.SemanticPipeline;
import org.antlr.v4.test.runtime.BaseRuntimeTest;
import org.antlr.v4.test.runtime.ErrorQueue;
import org.antlr.v4.test.runtime.RuntimeTestSupport;
import org.antlr.v4.test.runtime.StreamVacuum;
import org.antlr.v4.test.runtime.*;
import org.antlr.v4.test.runtime.descriptors.LexerExecDescriptors;
import org.antlr.v4.test.runtime.descriptors.PerformanceDescriptors;
import org.antlr.v4.tool.*;
Expand Down Expand Up @@ -153,6 +150,14 @@ public void testSetUp() throws Exception {
public void testTearDown() throws Exception {
}

@Override
public void beforeTest(RuntimeTestDescriptor descriptor) {
}

@Override
public void afterTest(RuntimeTestDescriptor descriptor) {
}

@Override
public String getTmpDir() {
return tmpdir;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.antlr.v4.runtime.misc.Interval;
import org.antlr.v4.semantics.SemanticPipeline;
import org.antlr.v4.test.runtime.ErrorQueue;
import org.antlr.v4.test.runtime.RuntimeTestDescriptor;
import org.antlr.v4.test.runtime.RuntimeTestSupport;
import org.antlr.v4.test.runtime.StreamVacuum;
import org.antlr.v4.tool.ANTLRMessage;
Expand Down Expand Up @@ -120,6 +121,14 @@ public static void groupSetUp() throws Exception {
public void testTearDown() throws Exception {
}

@Override
public void beforeTest(RuntimeTestDescriptor descriptor) {
}

@Override
public void afterTest(RuntimeTestDescriptor descriptor) {
}

@Override
public String getTmpDir() {
return tmpdir.getPath();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,7 @@
import org.antlr.v4.runtime.misc.Pair;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.semantics.SemanticPipeline;
import org.antlr.v4.test.runtime.BaseRuntimeTest;
import org.antlr.v4.test.runtime.ErrorQueue;
import org.antlr.v4.test.runtime.RuntimeTestSupport;
import org.antlr.v4.test.runtime.StreamVacuum;
import org.antlr.v4.test.runtime.*;
import org.antlr.v4.tool.ANTLRMessage;
import org.antlr.v4.tool.Grammar;
import org.antlr.v4.tool.GrammarSemanticsMessage;
Expand Down Expand Up @@ -196,6 +193,14 @@ public void testSetUp() throws Exception {
public void testTearDown() throws Exception {
}

@Override
public void beforeTest(RuntimeTestDescriptor descriptor) {
}

@Override
public void afterTest(RuntimeTestDescriptor descriptor) {
}

@Override
public String getTmpDir() {
return tmpdir;
Expand Down
Loading