Skip to content

Commit 713dc1a

Browse files
committed
Fix tar entries being called without resetting the archive
1 parent a8e81ce commit 713dc1a

File tree

47 files changed

+881
-28
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+881
-28
lines changed

crates/tmc-langs-cli/tests/integration.rs

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,3 +285,99 @@ fn extract_project_zstd() {
285285
insta::assert_yaml_snapshot!(files);
286286
})
287287
}
288+
289+
#[test]
290+
fn prepare_submission_tar() {
291+
test(|exercise| {
292+
let compressed = NamedTempFile::new().unwrap();
293+
compress_naive(&exercise, &compressed, Compression::TarZstd);
294+
let target = NamedTempFile::new().unwrap();
295+
let cli = Cli::parse_from([
296+
"tmc-langs-cli",
297+
"--pretty",
298+
"prepare-submission",
299+
"--clone-path",
300+
path_str(&exercise),
301+
"--output-path",
302+
path_str(&target),
303+
"--output-format",
304+
"tar",
305+
"--submission-path",
306+
path_str(&compressed),
307+
"--submission-compression",
308+
"tar",
309+
"--no-archive-prefix",
310+
]);
311+
let output = tmc_langs_cli::run(cli).unwrap();
312+
insta::assert_yaml_snapshot!(output);
313+
314+
let extract_target = tempdir().unwrap();
315+
extract_naive(&target, &extract_target, Compression::Tar);
316+
let files = sorted_list_of_files(&extract_target);
317+
insta::assert_yaml_snapshot!(files);
318+
})
319+
}
320+
321+
#[test]
322+
fn prepare_submission_zip() {
323+
test(|exercise| {
324+
let compressed = NamedTempFile::new().unwrap();
325+
compress_naive(&exercise, &compressed, Compression::TarZstd);
326+
let target = NamedTempFile::new().unwrap();
327+
let cli = Cli::parse_from([
328+
"tmc-langs-cli",
329+
"--pretty",
330+
"prepare-submission",
331+
"--clone-path",
332+
path_str(&exercise),
333+
"--output-path",
334+
path_str(&target),
335+
// "--output-format",
336+
// "zip",
337+
"--submission-path",
338+
path_str(&compressed),
339+
// "--submission-compression",
340+
// "zip",
341+
"--no-archive-prefix",
342+
]);
343+
let output = tmc_langs_cli::run(cli).unwrap();
344+
insta::assert_yaml_snapshot!(output);
345+
346+
let extract_target = tempdir().unwrap();
347+
extract_naive(&target, &extract_target, Compression::Zip);
348+
let files = sorted_list_of_files(&extract_target);
349+
insta::assert_yaml_snapshot!(files);
350+
})
351+
}
352+
353+
#[test]
354+
fn prepare_submission_zstd() {
355+
test(|exercise| {
356+
let compressed = NamedTempFile::new().unwrap();
357+
compress_naive(&exercise, &compressed, Compression::TarZstd);
358+
let target = NamedTempFile::new().unwrap();
359+
let cli = Cli::parse_from([
360+
"tmc-langs-cli",
361+
"--pretty",
362+
"prepare-submission",
363+
"--clone-path",
364+
path_str(&exercise),
365+
"--output-path",
366+
path_str(&target),
367+
"--output-format",
368+
"zstd",
369+
"--submission-path",
370+
path_str(&compressed),
371+
"--submission-compression",
372+
"zstd",
373+
"--no-archive-prefix",
374+
]);
375+
let output = tmc_langs_cli::run(cli).unwrap();
376+
insta::assert_yaml_snapshot!(output);
377+
378+
let extract_target = tempdir().unwrap();
379+
extract_naive(&target, &extract_target, Compression::TarZstd);
380+
let files = sorted_list_of_files(&extract_target);
381+
insta::assert_yaml_snapshot!(files);
382+
})
383+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: files
4+
input_file: sample_exercises/csharp/failing-exercise
5+
---
6+
- nuget.config
7+
- src
8+
- src/FailingSample
9+
- src/FailingSample/FailingSample.csproj
10+
- src/FailingSample/Program.cs
11+
- test
12+
- test/FailingSampleTests
13+
- test/FailingSampleTests/FailingSampleTests.csproj
14+
- test/FailingSampleTests/ProgramTest.cs
15+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: output
4+
input_file: sample_exercises/csharp/failing-exercise
5+
---
6+
output-kind: output-data
7+
status: finished
8+
message: prepared submission for [PATH] at [PATH]
9+
result: executed-command
10+
data:
11+
output-data-kind: submission-sandbox
12+
output-data: eu.gcr.io/moocfi-public/tmc-sandbox-csharp:latest
13+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: files
4+
input_file: sample_exercises/csharp/non-compiling-exercise
5+
---
6+
- nuget.config
7+
- src
8+
- src/NonCompilingSample
9+
- src/NonCompilingSample/NonCompilingSample.csproj
10+
- src/NonCompilingSample/Program.cs
11+
- test
12+
- test/NonCompilingSampleTests
13+
- test/NonCompilingSampleTests/NonCompilingSampleTests.csproj
14+
- test/NonCompilingSampleTests/ProgramTest.cs
15+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: output
4+
input_file: sample_exercises/csharp/non-compiling-exercise
5+
---
6+
output-kind: output-data
7+
status: finished
8+
message: prepared submission for [PATH] at [PATH]
9+
result: executed-command
10+
data:
11+
output-data-kind: submission-sandbox
12+
output-data: eu.gcr.io/moocfi-public/tmc-sandbox-csharp:latest
13+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: files
4+
input_file: sample_exercises/csharp/partially-passing
5+
---
6+
- nuget.config
7+
- src
8+
- src/TestProject
9+
- src/TestProject/Program.cs
10+
- src/TestProject/TestProject.csproj
11+
- test
12+
- test/TestProjectTests
13+
- test/TestProjectTests/ProgramTest.cs
14+
- test/TestProjectTests/TestProjectTests.csproj
15+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: output
4+
input_file: sample_exercises/csharp/partially-passing
5+
---
6+
output-kind: output-data
7+
status: finished
8+
message: prepared submission for [PATH] at [PATH]
9+
result: executed-command
10+
data:
11+
output-data-kind: submission-sandbox
12+
output-data: eu.gcr.io/moocfi-public/tmc-sandbox-csharp:latest
13+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: files
4+
input_file: sample_exercises/csharp/passing-exercise
5+
---
6+
- nuget.config
7+
- src
8+
- src/PassingSample
9+
- src/PassingSample/PassingSample.csproj
10+
- src/PassingSample/Program.cs
11+
- test
12+
- test/PassingSampleTests
13+
- test/PassingSampleTests/PassingSampleTests.csproj
14+
- test/PassingSampleTests/ProgramTest.cs
15+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: output
4+
input_file: sample_exercises/csharp/passing-exercise
5+
---
6+
output-kind: output-data
7+
status: finished
8+
message: prepared submission for [PATH] at [PATH]
9+
result: executed-command
10+
data:
11+
output-data-kind: submission-sandbox
12+
output-data: eu.gcr.io/moocfi-public/tmc-sandbox-csharp:latest
13+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
source: crates/tmc-langs-cli/tests/integration.rs
3+
expression: files
4+
input_file: sample_exercises/java/ant-exercise
5+
---
6+
- .tmcproject.json
7+
- build.xml
8+
- lib
9+
- lib/edu-test-utils-0.4.1.jar
10+
- lib/junit-4.10.jar
11+
- nbproject
12+
- nbproject/build-impl.xml
13+
- nbproject/genfiles.properties
14+
- nbproject/project.properties
15+
- nbproject/project.xml
16+
- src
17+
- src/Arith.java
18+
- test
19+
- test/ArithTest.java
20+

0 commit comments

Comments
 (0)