Skip to content

v1.4

Choose a tag to compare

@thewizardplusplus thewizardplusplus released this 23 May 14:31
· 10 commits to master since this release

Refactoring, improving of the unit tests, and the few new minor features.

Change Log

  • compiling of a code written in the Go programming language:
    • support for the running time management (via the Go context);
  • refactoring:
    • adding of the systemutils package:
      • adding of the systemutils.SaveTemporaryText() function;
      • adding of the systemutils.RunCommand() function:
        • adding of the unit tests;
    • improving of the coderunner package:
      • accepting of an allowed import set directly instead of building it automatically;
      • coderunner.CompileCode() function:
        • making optional of automatic importing of the packages used in the code;
        • improving of the unit tests;
    • improving of the testrunner package:
      • passing of a runner of a single test case as a dependency.

Features

  • saving of a code to a temporary file:
    • storing of the temporary file with the code to an individual temporary directory;
  • checking of package imports used in the code written in the Go programming language:
    • checking based on the set of allowed imports;
  • compiling of a code written in the Go programming language:
    • automatic importing of the packages used in the code (optionally);
    • checking of package imports used in the code (optionally):
      • checking based on the set of allowed imports;
    • enriching of an error of the external command running by an output from the stderr stream;
    • support for the running time management (via the Go context);
  • running of the compiled code (i.e. the executable file):
    • passing of a custom input as the stdin stream;
    • returning of an output from the stdout stream;
    • enriching of an error of the external command running by an output from the stderr stream;
    • support for the running time management (via the Go context);
  • running of a test case set for the compiled code (i.e. the executable file):
    • representation of a test case:
      • input;
      • expected output;
    • checking of an actual output in each test case:
      • returning of the sentinel errors:
        • failed running — it returns on a running error;
        • unexpected output — it returns when the expected and actual outputs do not match;
    • support for the running time management (via the Go context).