Comments (7)
Makes sense. Betekent dit dat je onderscheid maakt tussen de specificatie van de vewachte exit status (in hoofdtestcase) en de rapportering van een afwijkende exit status (bij de testcase waar het gebeurt)?
Ter info: in de bash
judge - waar we op regelmatige basis met de exit status werken bij shell scripts - is het standaard gedrag dat er niet over de exit status gerapporteerd wordt als de verwachte status 0 is en ook de gegenereerde status is 0. Als de verwachte status verschilt van 0, dan wordt er altijd explciet over de exit status gerapporteerd.
from universal-judge.
Betekent dit dat je onderscheid maakt tussen de specificatie van de vewachte exit status (in hoofdtestcase) en de rapportering van een afwijkende exit status (bij de testcase waar het gebeurt)?
Daar had ik nog niet aan gedacht, en dan is het toevoegen aan de hoofdtestcase misschien geen mooie oplossing. Het feit dat de exitcode wel als een channel bij de hoofdtestcase gespecificeerd is, maar mogelijk wel ergens anders gerapporteerd wordt vind ik niet helemaal clean.
Ik zal daar nog over nadenken. Een alternatief zou zijn om dit op contextniveau te specificeren, en dan over de exitcode te rapporteren bij de testcase waar het gebeurt (in de praktijk zal dat de laatste testcase zijn waarvoor resultaten zijn denk ik, want TESTed kan niet weten welke testcase er juist voor zorgt dat de exitcode slecht is.
Ter info, rapportering van andere resultaten gebeurt als volgt:
- Compilerresultaten in individuele modus worden gerapporteerd bij het eerste testgeval (want bij een compilerfout wordt zelfs geen enkel testgeval uitgevoerd).
- In precompilatiemodus (waar alles in een keer gecompileerd wordt), worden de compilerresultaten niet in een testgeval gerapporteerd maar een keer globaal bovenaan; daar was ook een opmerking over om dat in een ander tabblad te zetten.
- Andere channels worden gerapporteerd bij het testgeval waar ze gedefinieerd staan.
is het standaard gedrag dat er niet over de exit status gerapporteerd wordt als de verwachte status 0 is en ook de gegenereerde status is 0. Als de verwachte status verschilt van 0, dan wordt er altijd explciet over de exit status gerapporteerd.
Dit is zeker ook de bedoeling: andere channels zoals stderr en exceptions werken ook op deze manier.
from universal-judge.
Geïmplementeerd in 0b32dcf.
from universal-judge.
@niknetniko Nog een bedenking die ik me maakt: als er in een context testgevallen zijn die niet uitgevoerd worden (bv. door een vroege exit), dan is de vraag of we niet expliciet over deze testgevallen moeten rapporteren (bv. met een specifieke status "test niet uitgevoerd"). Dit zal misschien niet altijd toepasselijk zijn (bv. na een kritische fout zoals een compilatiefout), maar bij andere fouten is het voor de gebruiker wellicht wel nog interessant om te zien welke testgevallen er nog allemaal gepland waren.
Zelfde geldt trouwens voor contexten waarvan de testen nooit uitgevoerd werden (bv. bij een timeout tijdens het uitvoeren van één van de voorgaande contexten). We hebben daarmee geëxperimenteerd in de JavaScript judge, omdat de Python judge niet rapporteert over testen die niet uitgevoerd worden, en we vaak van studenten bij bv. timeouts de reactie krijgen dat "alles juist was behalve het laatste testgeval" (omdat ze niet zagen dat er nog bijkomende testgevallen waren).
Hiervoor zou het nuttig zijn als Dodona een extra status "test niet uitgevoerd" zou ondersteunen, die dan op alle niveaus in de feedback kan gebruikt worden. Bij de JavaScript judge heb ik daarvoor voorlopig een "grijze" achtergrondkleur ingehacked.
from universal-judge.
Op zich denk ik dat dit implementeren doenbaar is binnen TESTed, daarvoor zullen wat wijzigingen nodig zijn aan de logica van het beoordelen, maar niets al te drastisch denk ik.
Een groter probleem is dat die status voor niet uitgevoerde testen er momenteel niet is in Dodona, en ik niet direct zie hoe (en of dat zelfs wenselijk is om) kleuren via het partieel formaat te beïnvloeden.
from universal-judge.
@niknetniko nieuwe issue maken hierover in TESTed; zeker niet wenselijk om "hack" ook toe te passen in TESTed (kan voorlig eventueel met status "incorrect"); ik zal een issue aanmaken op Dodona hierover
from universal-judge.
from universal-judge.
Related Issues (20)
- Inconsistent naming of bash shell scripts
- Run custom oracles with test directory as its current working directory
- Remove ability to write custom oracles (or check functions) in anything but Python?
- Output fallthrough
- JSON failed to parse HOT 1
- Fetch stdin from file as an alternative to inlining it into test suite HOT 1
- Do not quote options on bash command lines generated by TESTed
- Support tests for files
- Generate "final" variables if possible
- Show stdin as a separate channel when used in combination with arguments HOT 2
- Closing newline insertion HOT 1
- Specify interface that must be implemented
- Link bash compilation error to corresponding line in code
- Support before/after in DSL
- Support attribute assignment
- Testing stdin/stdout and expressions at the same time? HOT 3
- Update node.js to latest version HOT 2
- JavaScript: consider alternative ways to create object as alternatives HOT 1
- Bug with Javascript objects
- representation of Set and Map as return value
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from universal-judge.