Package edu.odu.cs.zeil.codegrader
Class Stage
- java.lang.Object
-
- edu.odu.cs.zeil.codegrader.Stage
-
public class Stage extends java.lang.ObjectA stage is an area (directory) in which a version of the assignment, either submitted or gold, can be built and run.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classStage.BuildResult
-
Constructor Summary
Constructors Constructor Description Stage(Assignment asst, Submission submission, TestSuiteProperties suiteProperties)Create a new stage for submitted code.Stage(Assignment asst, TestSuiteProperties suiteProperties)Create a new gold version stage.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Delete the entire staging area after use.java.lang.StringgetBuildCommand()Determine the command used to build the code.java.lang.StringgetLaunchCommand(java.lang.String commandFromProperties)Get the launch command for this stage.java.nio.file.PathgetStageDir()java.lang.StringparameterSubstitution(java.lang.String launchCommandStr)Scans a string for shortcuts, replacing by the appropriate string.voidsetupStage()Set up the contents of a stage, in preparation for building.
-
-
-
Constructor Detail
-
Stage
public Stage(Assignment asst, Submission submission, TestSuiteProperties suiteProperties)
Create a new stage for submitted code.- Parameters:
asst- the assignment that this test suite is intended to assess.submission- the submission being graded.suiteProperties- info about the suite this is a stage for.
-
Stage
public Stage(Assignment asst, TestSuiteProperties suiteProperties)
Create a new gold version stage.- Parameters:
asst- the assignment that this test suite is intended to assess.suiteProperties- info about the suite this is a stage for.
-
-
Method Detail
-
clear
public void clear()
Delete the entire staging area after use.
-
getBuildCommand
public java.lang.String getBuildCommand()
Determine the command used to build the code. Can be set as a suite property or will attempt to infer the command from the stage directory contents.- Returns:
- a build command
- Throws:
TestConfigurationError- if no build command can be determined.
-
setupStage
public void setupStage()
Set up the contents of a stage, in preparation for building.
-
getStageDir
public java.nio.file.Path getStageDir()
- Returns:
- the stage directory
-
getLaunchCommand
public java.lang.String getLaunchCommand(java.lang.String commandFromProperties)
Get the launch command for this stage. If not specified as a property, will attempt to indef a suitable launch command from the stage contents.- Parameters:
commandFromProperties-- Returns:
- the launch command, or "" if none could be inferred.
-
parameterSubstitution
public java.lang.String parameterSubstitution(java.lang.String launchCommandStr)
Scans a string for shortcuts, replacing by the appropriate string. Shortcuts are- @P the test command line parameters
- @S the staging directory
- @T the test suite directory
- @t the test case name
- @R the reporting directory
- Parameters:
launchCommandStr- a string describing a command to be run- Returns:
- the launchCommandStr with shortcuts replaced by the appropriate path/value
-
-