mumuki-java-runner 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/java_runner.rb +2 -2
- data/lib/test_hook.rb +52 -7
- data/lib/version.rb +3 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a541271b702736638069bec61f59aabb4c448fc
|
4
|
+
data.tar.gz: aaa46fb1556615c7c8690527c58c31f986371254
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 599d52e7d4669ac2a7ac3cf470bfa6ad3fb545ecd76bea143b4ba89cae42f2c3017fa675503f50cd954d83965cdc7f9d7a92bcb48b9ae2267cf7c04e402d767a
|
7
|
+
data.tar.gz: 8f298391002b59499a250c594fd15ef65d7d06a0d3fafa6be0e49d75ecf90c5dc7b429665991a76c2f33946c3c6ff3e540ab80c604d9929b4b3d77fafa02a194
|
data/lib/java_runner.rb
CHANGED
@@ -3,8 +3,8 @@ require 'mumukit'
|
|
3
3
|
Mumukit.runner_name = 'java'
|
4
4
|
Mumukit.configure do |config|
|
5
5
|
config.docker_image = 'mumuki/mumuki-junit-worker'
|
6
|
-
|
7
6
|
end
|
8
7
|
|
8
|
+
require_relative './version'
|
9
9
|
require_relative './test_hook'
|
10
|
-
require_relative './metadata_hook'
|
10
|
+
require_relative './metadata_hook'
|
data/lib/test_hook.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
class JavaTestHook < Mumukit::Templates::FileHook
|
2
2
|
isolated true
|
3
|
+
structured true
|
3
4
|
|
4
5
|
def tempfile_extension
|
5
6
|
'.java'
|
@@ -9,6 +10,14 @@ class JavaTestHook < Mumukit::Templates::FileHook
|
|
9
10
|
"runjunit #{filename}"
|
10
11
|
end
|
11
12
|
|
13
|
+
def to_structured_result(result)
|
14
|
+
transform(JSON.parse(result))
|
15
|
+
end
|
16
|
+
|
17
|
+
def transform(examples)
|
18
|
+
examples.map { |e| [e[0], e[1].to_sym, e[2]] }
|
19
|
+
end
|
20
|
+
|
12
21
|
def post_process_file(file, result, status)
|
13
22
|
if result.include? '!!TEST FINISHED WITH COMPILATION ERROR!!'
|
14
23
|
[result, :errored]
|
@@ -22,21 +31,57 @@ class JavaTestHook < Mumukit::Templates::FileHook
|
|
22
31
|
import java.util.*;
|
23
32
|
import java.util.function.*;
|
24
33
|
import java.util.stream.*;
|
34
|
+
import java.util.stream.Collectors.*;
|
25
35
|
import java.time.*;
|
36
|
+
import org.junit.runner.RunWith;
|
26
37
|
import org.junit.*;
|
27
|
-
|
38
|
+
import org.junit.runner.*;
|
39
|
+
import org.junit.runner.notification.*;
|
40
|
+
import org.junit.runners.*;
|
41
|
+
import org.junit.runners.model.InitializationError;
|
42
|
+
import org.apache.commons.text.StringEscapeUtils;
|
28
43
|
#{request.content}
|
29
|
-
|
30
44
|
#{request.extra}
|
31
45
|
|
32
46
|
public class SubmissionTest {
|
33
|
-
#{request.test}
|
34
|
-
|
35
|
-
|
36
|
-
|
47
|
+
#{request.test}
|
48
|
+
public static void main(String[] args) {
|
49
|
+
JUnitCore core = new JUnitCore();
|
50
|
+
core.addListener(new MuListener());
|
51
|
+
core.run(SubmissionTest.class);
|
52
|
+
}
|
37
53
|
}
|
54
|
+
class MuListener extends RunListener {
|
55
|
+
private Map<String, Collection<String>> tests = new HashMap<>();
|
56
|
+
@Override
|
57
|
+
public void testStarted(Description description) throws Exception {
|
58
|
+
String methodName = description.getMethodName();
|
59
|
+
tests.put(methodName, Arrays.asList(methodName, "passed"));
|
60
|
+
}
|
61
|
+
|
62
|
+
@Override
|
63
|
+
public void testFailure(Failure failure) {
|
64
|
+
String methodName = failure.getDescription().getMethodName();
|
65
|
+
tests.put(methodName, Arrays.asList(methodName, "failed", failure.getMessage()));
|
66
|
+
}
|
67
|
+
|
68
|
+
@Override
|
69
|
+
public void testRunFinished(Result r) {
|
70
|
+
String result = prettyFormatResults(tests.values());
|
71
|
+
System.out.println(StringEscapeUtils.unescapeJson(result));
|
72
|
+
}
|
73
|
+
|
74
|
+
public String prettyFormatString(String string) {
|
75
|
+
return ("\\\""+string+"\\\"");
|
76
|
+
}
|
77
|
+
public String prettyFormatExample(Collection<String> example) {
|
78
|
+
return "["+example.stream().map(element -> prettyFormatString(element)).collect(Collectors.joining(",")) +"]";
|
79
|
+
}
|
80
|
+
public String prettyFormatResults(Collection<Collection<String>> results) {
|
81
|
+
return "["+results.stream().map(element -> prettyFormatExample(element)).collect(Collectors.joining(","))+"]";
|
82
|
+
}
|
38
83
|
}
|
39
84
|
EOF
|
40
85
|
end
|
41
86
|
|
42
|
-
end
|
87
|
+
end
|
data/lib/version.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mumuki-java-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Franco Leonardo Bulgarelli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mumukit
|
@@ -104,6 +104,7 @@ files:
|
|
104
104
|
- lib/java_runner.rb
|
105
105
|
- lib/metadata_hook.rb
|
106
106
|
- lib/test_hook.rb
|
107
|
+
- lib/version.rb
|
107
108
|
homepage: http://github.com/mumuki/mumuki-java-server
|
108
109
|
licenses:
|
109
110
|
- MIT
|
@@ -124,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
125
|
version: '0'
|
125
126
|
requirements: []
|
126
127
|
rubyforge_project:
|
127
|
-
rubygems_version: 2.
|
128
|
+
rubygems_version: 2.6.11
|
128
129
|
signing_key:
|
129
130
|
specification_version: 4
|
130
131
|
summary: Java Runner for Mumuki
|