Giter Site home page Giter Site logo

Comments (7)

pdawyndt avatar pdawyndt commented on May 24, 2024

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.

niknetniko avatar niknetniko commented on May 24, 2024

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.

niknetniko avatar niknetniko commented on May 24, 2024

Geïmplementeerd in 0b32dcf.

from universal-judge.

pdawyndt avatar pdawyndt commented on May 24, 2024

@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.

niknetniko avatar niknetniko commented on May 24, 2024

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.

pdawyndt avatar pdawyndt commented on May 24, 2024

@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.

pdawyndt avatar pdawyndt commented on May 24, 2024

dodona-edu/dodona#1785

from universal-judge.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.