Skip to content

Commit 3582cfd

Browse files
authored
Merge pull request #92 from kieler/als/tests
Reactivation of CI tests
2 parents bb31af8 + 9af113f commit 3582cfd

File tree

12 files changed

+185
-92
lines changed

12 files changed

+185
-92
lines changed

.github/workflows/ci.yml

Lines changed: 90 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,29 @@ on:
1414
workflow_dispatch: # manual triggering, for debugging purposes
1515

1616
jobs:
17-
mavenBuilds:
18-
17+
buildAll:
18+
name: Build and Test
1919
runs-on: ubuntu-latest
2020

2121
steps:
22-
# Setup
23-
- uses: actions/checkout@v2
22+
# Checkout repositories
23+
- name: Checkout Semantics
24+
uses: actions/checkout@v4
25+
26+
- name: Checkout Models
27+
uses: actions/checkout@v4
28+
with:
29+
repository: kieler/models
30+
path: models
31+
32+
# Provide Java
2433
- name: Set up JDK 17
2534
uses: actions/setup-java@v2
2635
with:
2736
java-version: '17'
2837
distribution: 'adopt'
2938

39+
# Configure maven artifact caching
3040
- name: Cache local Maven repository
3141
uses: actions/cache@v2
3242
with:
@@ -35,13 +45,26 @@ jobs:
3545
restore-keys: |
3646
${{ runner.os }}-maven-
3747
38-
# Maven build update site
39-
#- name: Build update site
40-
# run: MAVEN_OPTS="-Xmx2048M" mvn --update-snapshots clean verify -P semantics --file build/pom.xml
48+
# Maven build products
49+
- name: Build Products and Run Tests
50+
# Start with xvfb for testing diagram generation with piccolo (see Klighd test config)
51+
run:
52+
Xvfb -ac > /dev/null 2>&1 & mvn --update-snapshots --fail-at-end clean verify -P semantics.all --file build/pom.xml
53+
env:
54+
models_repository: '[${{github.workspace}}/models]'
55+
MAVEN_OPTS: '-Xmx2048M'
56+
DISPLAY: ':0'
4157

42-
# Maven build products (including update site)
43-
- name: Build products
44-
run: MAVEN_OPTS="-Xmx2048M" mvn --update-snapshots clean package -P semantics.product --file build/pom.xml
58+
# Produce test report
59+
- name: Produce test report
60+
uses: dorny/test-reporter@v1
61+
if: always()
62+
with:
63+
name: Test Report
64+
path: test/*/target/surefire-reports/*.xml
65+
reporter: java-junit
66+
fail-on-error: true
67+
max-annotations: '50'
4568

4669
##################################### ALL THE ARTIFACTS #####################################
4770

@@ -203,4 +226,60 @@ jobs:
203226
with:
204227
name: KIELER Language Server
205228
path: build/de.cau.cs.kieler.language.server.cli/target/de.cau.cs.kieler.language.server.cli-*-app.jar
206-
if-no-files-found: error
229+
if-no-files-found: error
230+
231+
testMac:
232+
name: Test CLI (MacOS)
233+
runs-on: macos-latest
234+
needs: buildAll
235+
236+
steps:
237+
# Setup
238+
- uses: actions/checkout@v2
239+
- name: Set up JDK 17
240+
uses: actions/setup-java@v2
241+
with:
242+
java-version: '17'
243+
distribution: 'adopt'
244+
245+
- name: Cache local Maven repository
246+
uses: actions/cache@v2
247+
with:
248+
path: ~/.m2/repository
249+
key: ${{ runner.os }}-maven-${{ hashFiles('.github/workflows/*.*', '**/pom.xml', '**/META-INF/MANIFEST.MF', 'build/de.cau.cs.kieler.semantics.targetplatform/de.cau.cs.kieler.semantics.targetplatform.target') }}
250+
restore-keys: |
251+
${{ runner.os }}-maven-
252+
253+
# Maven test CLI
254+
- name: Tests CLI
255+
run: mvn --update-snapshots clean verify -P semantics.cli.test --file build/pom.xml
256+
env:
257+
MAVEN_OPTS: '-Xmx2048M'
258+
259+
testWin:
260+
name: Test CLI (Windows)
261+
runs-on: windows-latest
262+
needs: buildAll
263+
264+
steps:
265+
# Setup
266+
- uses: actions/checkout@v2
267+
- name: Set up JDK 17
268+
uses: actions/setup-java@v2
269+
with:
270+
java-version: '17'
271+
distribution: 'adopt'
272+
273+
- name: Cache local Maven repository
274+
uses: actions/cache@v2
275+
with:
276+
path: ~/.m2/repository
277+
key: ${{ runner.os }}-maven-${{ hashFiles('.github/workflows/*.*', '**/pom.xml', '**/META-INF/MANIFEST.MF', 'build/de.cau.cs.kieler.semantics.targetplatform/de.cau.cs.kieler.semantics.targetplatform.target') }}
278+
restore-keys: |
279+
${{ runner.os }}-maven-
280+
281+
# Maven test CLI
282+
- name: Tests CLI
283+
run: mvn --update-snapshots clean verify -P semantics.cli.test --file build/pom.xml
284+
env:
285+
MAVEN_OPTS: '-Xmx2048M'

build/pom.xml

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -35,100 +35,100 @@
3535
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3636
<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
3737
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
38-
39-
<!-- Updatesite for product build -->
40-
<kieler.semantics.updatesite>http://rtsys.informatik.uni-kiel.de/~kieler/updatesite/nightly/semantics/</kieler.semantics.updatesite>
4138
</properties>
4239

4340

4441
<!-- Define one profile for each output target we have. -->
4542
<profiles>
46-
<!-- The Semantics updatesite. -->
4743
<profile>
4844
<id>semantics</id>
4945

50-
<activation>
51-
<activeByDefault>true</activeByDefault>
52-
</activation>
53-
5446
<modules>
55-
<module>../plugins</module>
5647
<module>de.cau.cs.kieler.semantics.targetplatform</module>
48+
<module>../plugins</module>
5749
<module>../features</module>
58-
<module>de.cau.cs.kieler.semantics.repository</module>
5950
</modules>
6051
</profile>
6152

62-
63-
<!-- Test profile including cli tests. -->
6453
<profile>
6554
<id>semantics.test</id>
6655

6756
<modules>
68-
<module>../plugins</module>
6957
<module>de.cau.cs.kieler.semantics.targetplatform</module>
58+
<module>../plugins</module>
7059
<module>../test</module>
7160
<module>de.cau.cs.kieler.sccharts.cli</module>
7261
<module>de.cau.cs.kieler.kicool.cli</module>
7362
<module>de.cau.cs.kieler.kicool.klighd.cli</module>
74-
<module>de.cau.cs.kieler.language.server.cli</module>
7563
<module>../test/de.cau.cs.kieler.cli.test</module>
7664
<module>../language-server</module>
65+
<module>de.cau.cs.kieler.language.server.cli</module>
7766
</modules>
7867
</profile>
79-
8068

81-
<!-- The Semantics product. -->
8269
<profile>
83-
<id>semantics.nightly.product</id>
84-
85-
<repositories>
86-
<repository>
87-
<id>p2.kieler-semantics</id>
88-
<layout>p2</layout>
89-
<url>${kieler.semantics.updatesite}</url>
90-
</repository>
91-
</repositories>
92-
70+
<id>semantics.cli.test</id>
71+
9372
<modules>
94-
<module>de.cau.cs.kieler.semantics.targetplatform</module>
95-
<module>../plugins/de.cau.cs.kieler.core.product</module>
96-
<module>../features/de.cau.cs.kieler.product.feature</module>
97-
<module>de.cau.cs.kieler.semantics.product.repository</module>
73+
<module>de.cau.cs.kieler.semantics.targetplatform</module>
74+
<module>../plugins</module>
9875
<module>de.cau.cs.kieler.sccharts.cli</module>
9976
<module>de.cau.cs.kieler.kicool.cli</module>
10077
<module>de.cau.cs.kieler.kicool.klighd.cli</module>
101-
<module>de.cau.cs.kieler.language.server.cli</module>
102-
<module>../language-server</module>
78+
<module>../test/de.cau.cs.kieler.cli.test</module>
10379
</modules>
10480
</profile>
10581

10682
<profile>
10783
<id>semantics.product</id>
108-
84+
10985
<modules>
110-
<module>../plugins</module>
11186
<module>de.cau.cs.kieler.semantics.targetplatform</module>
87+
<module>../plugins</module>
11288
<module>../features</module>
11389
<module>de.cau.cs.kieler.semantics.repository</module>
11490
<module>de.cau.cs.kieler.semantics.product.repository</module>
11591
<module>de.cau.cs.kieler.sccharts.cli</module>
11692
<module>de.cau.cs.kieler.kicool.cli</module>
11793
<module>de.cau.cs.kieler.kicool.klighd.cli</module>
118-
<module>de.cau.cs.kieler.language.server.cli</module>
11994
<module>../language-server</module>
95+
<module>de.cau.cs.kieler.language.server.cli</module>
12096
</modules>
12197
</profile>
12298

12399
<profile>
124100
<id>semantics.ls</id>
125101
<modules>
126-
<module>../plugins</module>
127102
<module>de.cau.cs.kieler.semantics.targetplatform</module>
103+
<module>../plugins</module>
104+
<module>../language-server</module>
128105
<module>de.cau.cs.kieler.language.server.cli</module>
106+
</modules>
107+
</profile>
108+
109+
110+
<profile>
111+
<id>semantics.all</id>
112+
113+
<activation>
114+
<activeByDefault>true</activeByDefault>
115+
</activation>
116+
117+
<modules>
118+
<module>de.cau.cs.kieler.semantics.targetplatform</module>
119+
<module>../plugins</module>
120+
<module>../test</module>
121+
<module>../features</module>
122+
<module>de.cau.cs.kieler.semantics.repository</module>
123+
<module>de.cau.cs.kieler.semantics.product.repository</module>
124+
<module>de.cau.cs.kieler.sccharts.cli</module>
125+
<module>de.cau.cs.kieler.kicool.cli</module>
126+
<module>de.cau.cs.kieler.kicool.klighd.cli</module>
129127
<module>../language-server</module>
128+
<module>de.cau.cs.kieler.language.server.cli</module>
129+
<module>../test/de.cau.cs.kieler.cli.test</module>
130130
</modules>
131-
</profile>
131+
</profile>
132132

133133
</profiles>
134134

build/scripts/configure.py

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,6 @@ def main(args):
7979
else:
8080
setArtifactName(product, args)
8181

82-
print '\n- Setting product build updatesite -'
83-
# check main pom file
84-
pom = join(args.path, 'build/pom.xml')
85-
if not isfile(pom):
86-
print 'pom.xml does not exist: ' + pom
87-
pause(args)
88-
else:
89-
setProductUpdateSite(pom, args)
90-
9182
print '\n- Setting product updatesites -'
9283
# check main pom file
9384
p2inf = join(args.path, 'build/de.cau.cs.kieler.semantics.product.repository/kieler.p2.inf')
@@ -201,29 +192,6 @@ def setArtifactName(product, args):
201192
print 'Cannot find archiveFileName element in %s' % product
202193
pause(args)
203194

204-
205-
def setProductUpdateSite(pom, args):
206-
"""Set source updatesite for product build"""
207-
xml = etree.parse(pom, parser = etree.XMLParser(remove_comments=False))
208-
updatesite = xml.find('./p:properties/p:kieler.semantics.updatesite', namespaces={'p':'http://maven.apache.org/POM/4.0.0'})
209-
if updatesite is not None:
210-
if args.release:
211-
updatesite.text = releaseUpdatesite % args.release
212-
else:
213-
updatesite.text = nightlyUpdatesite
214-
print 'Product Updatesite: %s' % updatesite.text
215-
else:
216-
print 'Cannot find kieler.semantics.updatesite element in %s' % pom
217-
pause(args)
218-
219-
# retain html entities
220-
trimspace = xml.find('./p:properties/p:sourceFeatureLabelSuffix', namespaces={'p':'http://maven.apache.org/POM/4.0.0'})
221-
if updatesite is not None:
222-
trimspace.text = u'&#xA0;(Sources)'
223-
224-
writeXML(xml, pom, htmlentities=True)
225-
226-
227195
def setProductUpdateSites(p2inf, targetplatform, args):
228196
"""Create p2.inf for product configuring all updatesites registered in the product"""
229197
updatesites = [] # targetplatform
@@ -250,4 +218,4 @@ def setProductUpdateSites(p2inf, targetplatform, args):
250218
main(argParser.parse_args())
251219
except KeyboardInterrupt:
252220
print "\nAbort"
253-
sys.exit(0)
221+
sys.exit(0)

build/scripts/uberjar.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -341,9 +341,10 @@ def write_script(file, command, code):
341341
print('Creating script', basename(file.name))
342342
file.write(command.encode('ascii'))
343343
file.write(code)
344-
flags = os.fstat(file.fileno()).st_mode
345-
flags |= stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH
346-
os.fchmod(file.fileno(), stat.S_IMODE(flags))
344+
if os.name != 'nt':
345+
flags = os.fstat(file.fileno()).st_mode
346+
flags |= stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH
347+
os.fchmod(file.fileno(), stat.S_IMODE(flags))
347348

348349
def stop(msg):
349350
errPrint('[ERROR] ' + msg)

oomph/kieler-semantics-developers.setup

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,10 @@
253253
pattern="${git.clone.semantics.location}/features/.*"/>
254254
<operand
255255
xsi:type="predicates:LocationPredicate"
256-
pattern=".*/oomph/.*"/>
256+
pattern=".*/oomph"/>
257257
<operand
258258
xsi:type="predicates:LocationPredicate"
259-
pattern="${git.clone.semantics.location}/oomph/.*"/>
259+
pattern="${git.clone.semantics.location}/oomph"/>
260260
<operand
261261
xsi:type="predicates:LocationPredicate"
262262
pattern=".*/language-server/.*"/>

plugins/de.cau.cs.kieler.scg/resources/sc/sc-generic.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
* @author Reinhard v. Hanxleden,
1616
1717
*/
18+
#ifndef SC_GENERIC_H
19+
#define SC_GENERIC_H
20+
21+
1822
#include <stdio.h>
1923
#include <limits.h>
2024

@@ -1567,3 +1571,6 @@ void set2names(char *prefix, char* suffix, void *setPtr, int setmax, char *names
15671571
#define _SC_ERROR2(code, f, a, b) fprintf(stderr, f, a, b); exit(code);
15681572
#define _SC_ERROR3(code, f, a, b, c) fprintf(stderr, f, a, b, c); exit(code);
15691573
#endif
1574+
1575+
1576+
#endif /* !SC_GENERIC_H */

plugins/de.cau.cs.kieler.scg/resources/sc/sc.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
* @author Reinhard v. Hanxleden,
1111
1212
*/
13+
#ifndef SC_H
14+
#define SC_H
15+
1316

1417
/* Note: This header file makes use of the following
1518
* application-specific macros. If the application sets these macros,
@@ -315,3 +318,5 @@ unsigned long _longBit;
315318
}
316319
#endif
317320

321+
322+
#endif /* !SC_H */

plugins/de.cau.cs.kieler.scg/resources/sc/scl.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
// SCL Macros
22
// rvh 30 Nov 2012
3+
#ifndef SCL_H
4+
#define SCL_H
5+
36

47
// Time measurements
58
#ifdef _SC_NOTRACE // Tracing off -> Timing off
@@ -202,3 +205,6 @@ typedef int bool;
202205
setPC(_cid, __LABEL__); \
203206
dispatch_; \
204207
__LABEL__:
208+
209+
210+
#endif /* !SC_GENERIC_H */

0 commit comments

Comments
 (0)