An open API service indexing awesome lists of open source software.

https://github.com/berkeley-cs61b/bsag-jh61b

jh61b step definitions for BSAG
https://github.com/berkeley-cs61b/bsag-jh61b

Last synced: about 1 month ago
JSON representation

jh61b step definitions for BSAG

Awesome Lists containing this project

README

          

# `jh61b` for BSAG

Steps for running `jh61b.jar` with BSAG.

## Notice

**This package is currently under active development! It's probably broken.**
I'm working as fast as I can to un-break it and add features.
Once I've verified that I can run an autograder, I will publish it on PyPI.

## Usage

`jh61b` uses "pieces", which are a related group of test files. Each piece
is defined by the set of student files and assessment files it depends on.

An example set of `jh61b` steps might look like

```yaml
# Check that the relevant files are present
- jh61b.check_files:
pieces:
TestIntList:
# Student files must be present and not clobbered by AG files
student_files:
- IntList/IntListExercises.java
- IntList/IntList.java
- IntList/Primes.java
# jh61b test files that will be run later.
assessment_files:
- AGTestAddConstant.java
- AGTestSetToZeroIfMaxFEL.java
- AGTestSquarePrimes.java
# Define multiple pieces that can succeed or fail independently
TestArithmetic:
student_files:
- Arithmetic/Arithmetic.java
assessment_files:
- AGTestArithmetic.java
TestDebugExercise:
student_files:
- DebugExercise/DebugExercise2.java
assessment_files:
- AGTestDebugExercise.java
# Compile every piece
- jh61b.compilation
# use `jdeps` to verify that student files don't depend on disallowed libraries
# for example, `reflect` can be used to fake behavior under test.
- jh61b.dep_check:
disallowed_classes:
- java.lang.reflect.**
# Run assessments
- jh61b.assessment:
# Some pieces will have special settings. If a piece isn't special, no
# need to specify it.
piece_configs:
# This test requires students to pass every test in the file(s) to
# receive full credit. The aggregation report has gradescope test
# number "3".
TestDebugExercise
require_full_score: true
aggregated_number: 3
# Weight module scores to achieve a total score.
- jh61b.final_score:
scoring:
TestIntList: 80
TestArithmetic: 16
TestDebugExercise: 32
max_points: 128
```