You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
mikysett 2786c22153 docs(corewar): add audit 1 year ago
..
README.md docs(corewar): add audit 1 year ago

README.md

Functional

Initial Setup

If at any moment or for any reason the evaluated Assembler or Virtual Machine crashes or have any memory leak the evaluation fails.
Before to start the evaluation, download the Playground, it will contain a standard Assembler and Virtual Machine.
Is the learner able to guide you installing and running the provided binaries?

Assembler

Run the learner Assembler without any argument.
Does the Assembler prints a little introduction on how to use it?
Run the Assembler with a path to a file that doesn't exist.
Does the Assembler returns a meaningful error and exit?
Use the learner Assembler to compile all the invalid players provided in players_src/invalid.
Did the Assembler refused to create those players because invalid?
Did the Assembler printed an error message explaining why the player was invalid?
Did the Assembler exited without creating any .cor?
Use the learner Assembler to compile all the valid players provided in players_src/valid.
Did the Assembler compiled all the .s into .cor binaries?
Before to procede you may want to copy or rename the generated .cor files otherwise they will be overwritten by the next compilation step.
Use the standard Assembler provided in the playground to compile all the valid players provided in players_src/valid.
Using diff and hexdump or any similar tool compare the two versions of each binary.
Are the two versions of the binaries identical for every player?

Virtual Machine

Run the learner VM without any argument.
Does the VM prints a little introduction on how to use it?
Run the VM with a path to a file that doesn't exist.
Does the VM returns a meaningful error and exit?
Does the VM returns a meaningful error and exit?
Run the VM with four valid players and the flag -d 10.
Does the VM introduce each player by writing their name and description before to start the game?
Does the VM exit at cycle 10 and dump the memory printing 32 bytes per row?
Run the VM using four players with the name starting with strong_* and the flag -d 40000.
Run also the same command on the standard VM.
Are the two memory dumps identical (they can be formatted in a different way, but the bytes in the arena must match perfectly)?
Run such games at least 4 more times mixing and matching the players to create new outputs.
Are the two memory dumps identical for every game played?

Beating ameba

Use the standard Assembler to compile the player of the learner and the given ameba.s.
Run those two players on the standard VM twice: once with ameba in the first position and another time with ameba in second position.
Is the player of the learner winning both games?

Bonus

+Do the assembler have a working disassembly mode?
+Do the assembler handles arithmetic operations?
+Do the assembler implements a basic macro system?
+Do the virtual machine have a visualizer?