Skip to content

Latest commit

Β 

History

History
466 lines (406 loc) Β· 37 KB

test.md

File metadata and controls

466 lines (406 loc) Β· 37 KB

Travis Test

example workflow

πŸ‘‰ RISC-V

  • Test checking correct behaviour:

    • RISC-V default examples:

      Click to expand
      Test Name Description In use
      test_riscv_example_001 Data Storage βœ–οΈ
      test_riscv_example_002 ALU operations βœ…
      test_riscv_example_003 Store/Load Data in Memory βœ…
      test_riscv_example_004 FPU operations βœ…
      test_riscv_example_005 Loop βœ…
      test_riscv_example_006 Branch βœ…
      test_riscv_example_007 Loop + Memory βœ…
      test_riscv_example_008 I/O Syscalls βœ–οΈ
      test_riscv_example_009 I/O Syscalls + Strings βœ–οΈ
      test_riscv_example_011 Subrutines βœ…
      test_riscv_example_012 Factorial βœ…
    • Libraries:

      Click to expand
      Test Name Description In use
      test_riscv_libraries_001 Min and Max βœ…
    • System calls:

      Click to expand
      Test Name Description In use
      test_riscv_syscall_001 print_int βœ…
      test_riscv_syscall_002 print_float βœ…
      test_riscv_syscall_003 print_double βœ…
      test_riscv_syscall_004 print_string βœ…
      test_riscv_syscall_005 read_int βœ–οΈ
      test_riscv_syscall_006 read_float βœ–οΈ
      test_riscv_syscall_007 read_double βœ–οΈ
      test_riscv_syscall_008 read_string βœ–οΈ
      test_riscv_syscall_009 sbrk βœ…
      test_riscv_syscall_010 exit βœ…
      test_riscv_syscall_011 print_char βœ…
      test_riscv_syscall_012 read_char βœ–οΈ
  • Tests that force errors to check that they are detected correctly:

    • Compilation:

      Click to expand
      Test Name Description In use
      test_riscv_error_compiler_001 Tag repeated (m1) βœ…
      test_riscv_error_compiler_002 Instruction not found (m2) βœ…
      test_riscv_error_compiler_003 Incorrect syntax in an instruction (m3) βœ…
      test_riscv_error_compiler_004 Nonexistent register (m4) βœ…
      test_riscv_error_compiler_005 Immediate number too large (m5) βœ…
      test_riscv_error_compiler_006 Immediate number not valid (m6) βœ…
      test_riscv_error_compiler_007 Invalid tag (m7) βœ…
      test_riscv_error_compiler_008 Address too large (m8) βœ…
      test_riscv_error_compiler_009 Invalid address (m9) βœ…
      test_riscv_error_compiler_010 Space allocation too large (m10) βœ–οΈ
      test_riscv_error_compiler_014 Incorrect directive (m14) βœ…
      test_riscv_error_compiler_015 Invalid value, must be a number (m15) βœ…
      test_riscv_error_compiler_016 Character string does not begin with " (m16) βœ…
      test_riscv_error_compiler_017 Character string not ending with " (m17) βœ…
      test_riscv_error_compiler_018 Number too large (m18) βœ…
      test_riscv_error_compiler_019 Empty number (m19) βœ…
      test_riscv_error_compiler_021 Data not aligned (m21) βœ…
      test_riscv_error_compiler_022 Number not positive (m22) βœ…
      test_riscv_error_compiler_023 Empty directive (m23) βœ…
      test_riscv_error_compiler_030 Empty file βœ…
    • Execution:

      Click to expand
      Test Name Description In use
      test_riscv_error_executor_001 Program without instructions βœ…
      test_riscv_error_executor_002 main tag does not exist βœ…
      test_riscv_error_executor_003 sp register in data segment βœ…
      test_riscv_error_executor_004 sp register in text segment βœ…
      test_riscv_error_executor_005 Memory writing in text segment βœ…
      test_riscv_error_executor_006 Memory reading from text segment βœ…
      test_riscv_error_executor_007 Memory write not aligned βœ…
      test_riscv_error_executor_008 Memory read not aligned βœ…
      test_riscv_error_executor_009 Write to register without permision βœ…
    • Sentinel (tests that check the parameter passing convention):

      Click to expand
      Test Name Description In use
      test_riscv_sentinels_001 Changing the a0 register inside test function βœ…
      test_riscv_sentinels_002 Changing the a1 register inside the test function βœ…
      test_riscv_sentinels_003 Changing the a2 register inside the test function βœ…
      test_riscv_sentinels_004 Changing the a3 register inside the test function βœ…
      test_riscv_sentinels_005 Changing the a4 register inside the test function βœ…
      test_riscv_sentinels_006 Changing the a5 register inside the test function βœ…
      test_riscv_sentinels_007 Changing the a6 register inside the test function βœ…
      test_riscv_sentinels_008 Changing the a7 register inside the test function βœ…
      test_riscv_sentinels_009 Changing the t0 register inside the test function βœ…
      test_riscv_sentinels_010 Changing the t1 register inside the test function βœ…
      test_riscv_sentinels_011 Changing the t2 register inside the test function βœ…
      test_riscv_sentinels_012 Changing the t3 register inside the test function βœ…
      test_riscv_sentinels_013 Changing the t4 register inside the test function βœ…
      test_riscv_sentinels_014 Changing the t5 register inside the test function βœ…
      test_riscv_sentinels_015 Changing the t6 register inside the test function βœ…
      test_riscv_sentinels_016 Changing the s0 register inside the test function βœ…
      test_riscv_sentinels_017 Changing the s1 register inside the test function βœ…
      test_riscv_sentinels_018 Changing the s2 register inside the test function βœ…
      test_riscv_sentinels_019 Changing the s3 register inside the test function βœ…
      test_riscv_sentinels_020 Changing the s4 register inside the test function βœ…
      test_riscv_sentinels_021 Changing the s5 register inside the test function βœ…
      test_riscv_sentinels_022 Changing the s6 register inside the test function βœ…
      test_riscv_sentinels_023 Changing the s7 register inside the test function βœ…
      test_riscv_sentinels_024 Changing the s8 register inside the test function βœ…
      test_riscv_sentinels_025 Changing the s9 register inside the test function βœ…
      test_riscv_sentinels_026 Changing the s10 register inside the test function βœ…
      test_riscv_sentinels_027 Changing the s11 register inside the test function βœ…
      test_riscv_sentinels_028 Changing the ra register inside the test function βœ…
      test_riscv_sentinels_029 Changing the sp register inside the test function βœ…
      test_riscv_sentinels_030 Changing the gp register inside test function βœ…
      test_riscv_sentinels_031 Changing the tp register inside the test function βœ…
      test_riscv_sentinels_032 Changing the s1 register inside the test function and saving to the stack βœ…
      test_riscv_sentinels_033 Changing the s1 register inside the test function and saving on stack, but without restoring βœ…
      test_riscv_sentinels_034 Changing register s1 inside the test function and saving to stack, but restoring another address βœ…
      test_riscv_sentinels_035 Changing register s1 inside the test function and saving to stack, but restoring another size βœ…
      test_riscv_sentinels_036 Changing of register s1 inside the test function and saving to stack, but the stack is overwritten βœ…
    • Instructions (tests that check the instruction set):

      Click to expand
      Test Name Description In use
      test_riscv_instruction_001 add βœ…
      test_riscv_instruction_002 addi βœ…
      test_riscv_instruction_003 sub βœ…
      test_riscv_instruction_004 lui βœ…
      test_riscv_instruction_005 jal βœ…
      test_riscv_instruction_006 jalr βœ…
      test_riscv_instruction_007 beq βœ…
      test_riscv_instruction_008 bne βœ…
      test_riscv_instruction_009 blt βœ…
      test_riscv_instruction_010 bge βœ…
      test_riscv_instruction_011 bltu βœ…
      test_riscv_instruction_012 bgeu βœ…
      test_riscv_instruction_013 lb, lh, lw, sb, sh, sw βœ…
      test_riscv_instruction_014 lbu, lhu βœ…
      test_riscv_instruction_015 slti βœ…
      test_riscv_instruction_016 sltiu βœ…
      test_riscv_instruction_017 xori βœ…
      test_riscv_instruction_018 ori βœ…
      test_riscv_instruction_019 andi βœ…
      test_riscv_instruction_020 div-2reg βœ…
      test_riscv_instruction_021 divu-2reg βœ…
      test_riscv_instruction_022 rotr βœ…
      test_riscv_instruction_023 sll βœ…
      test_riscv_instruction_024 slt βœ…
      test_riscv_instruction_025 sltu βœ…
      test_riscv_instruction_026 xori βœ…
      test_riscv_instruction_027 srl βœ…
      test_riscv_instruction_028 sra βœ…
      test_riscv_instruction_029 or βœ…
      test_riscv_instruction_030 and βœ…
      test_riscv_instruction_031 l.d y s.d βœ…
      test_riscv_instruction_032 mult βœ…
      test_riscv_instruction_033 multu βœ…
      test_riscv_instruction_034 mul βœ…
      test_riscv_instruction_035 addu βœ…
      test_riscv_instruction_036 addiu βœ…
      test_riscv_instruction_037 b βœ…
      test_riscv_instruction_038 div βœ…
      test_riscv_instruction_039 divu βœ…
      test_riscv_instruction_040 rem/mod βœ…
      test_riscv_instruction_041 modu βœ…
      test_riscv_instruction_042 bgt βœ…
      test_riscv_instruction_043 bgtu βœ…
      test_riscv_instruction_044 ble βœ…
      test_riscv_instruction_045 bleu βœ…
      test_riscv_instruction_046 nor βœ…
      test_riscv_instruction_047 nop βœ…
      test_riscv_instruction_048 move βœ…
      test_riscv_instruction_049 mthi, mtlo, mfhi, mflo βœ…
      test_riscv_instruction_050 subu βœ…
      test_riscv_instruction_051 beqz βœ…
      test_riscv_instruction_052 bgez βœ…
      test_riscv_instruction_053 bgezal βœ…
      test_riscv_instruction_054 bgtz βœ…
      test_riscv_instruction_055 blez βœ…
      test_riscv_instruction_056 blt βœ…
      test_riscv_instruction_057 bnez βœ…
      test_riscv_instruction_058 sqrt.s/d, li.s/d βœ…
      test_riscv_instruction_059 add.s/d βœ…
      test_riscv_instruction_060 sub.s/d βœ…
      test_riscv_instruction_061 abs.s/d βœ…
      test_riscv_instruction_062 mul.s/d βœ…
      test_riscv_instruction_063 div.s/d βœ…
      test_riscv_instruction_064 rsqrt.s/d βœ…
      test_riscv_instruction_065 cvt.s.d/d.s βœ…
      test_riscv_instruction_066 cvt.w.d/w.s βœ…
      test_riscv_instruction_067 cvt.s.w/cvt.d.w βœ…

πŸ‘‰ MIPS-32

  • Test checking correct behaviour:

    • MIPS-32 default examples:

      Click to expand
      Test Name Description In use
      test_mips_example_001 Data Storage βœ–οΈ
      test_mips_example_002 ALU operations βœ…
      test_mips_example_003 Store/Load Data in Memory βœ…
      test_mips_example_004 FPU operations βœ…
      test_mips_example_005 Loop βœ…
      test_mips_example_006 Branch βœ…
      test_mips_example_007 Loop + Memory βœ…
      test_mips_example_008 I/O Syscalls βœ–οΈ
      test_mips_example_009 I/O Syscalls + Strings βœ–οΈ
      test_mips_example_011 Subrutines βœ…
      test_mips_example_012 Factorial βœ…
    • Libraries:

      Click to expand
      Test Name Description In use
      test_mpis_libraries_001 Min and Max βœ…
    • System calls:

      Click to expand
      Test Name Description In use
      test_mips_syscall_001 print_int βœ…
      test_mips_syscall_002 print_float βœ…
      test_mips_syscall_003 print_double βœ…
      test_mips_syscall_004 print_string βœ…
      test_mips_syscall_005 read_int βœ–οΈ
      test_mips_syscall_006 read_float βœ–οΈ
      test_mips_syscall_007 read_double βœ–οΈ
      test_mips_syscall_008 read_string βœ–οΈ
      test_mips_syscall_009 sbrk βœ…
      test_mips_syscall_010 exit βœ…
      test_mips_syscall_011 print_char βœ…
      test_mips_syscall_012 read_char βœ–οΈ
  • Tests that force errors to check that they are detected correctly:

    • Compilation:

      Click to expand
      Test Name Description In use
      test_mips_error_compiler_001 Tag repeated (m1) βœ…
      test_mips_error_compiler_002 Instruction not found (m2) βœ…
      test_mips_error_compiler_003 Incorrect syntax in an instruction (m3) βœ…
      test_mips_error_compiler_004 Nonexistent register (m4) βœ…
      test_mips_error_compiler_005 Immediate number too large (m5) βœ…
      test_mips_error_compiler_006 Immediate number not valid (m6) βœ…
      test_mips_error_compiler_007 Invalid tag (m7) βœ…
      test_mips_error_compiler_008 Address too large (m8) βœ…
      test_mips_error_compiler_009 Invalid address (m9) βœ…
      test_mips_error_compiler_010 Space allocation too large (m10) βœ–οΈ
      test_mips_error_compiler_014 Incorrect directive (m14) βœ…
      test_mips_error_compiler_015 Invalid value, must be a number (m15) βœ…
      test_mips_error_compiler_016 Character string does not begin with " (m16) βœ…
      test_mips_error_compiler_017 Character string not ending with " (m17) βœ…
      test_mips_error_compiler_018 Number too large (m18) βœ…
      test_mips_error_compiler_019 Empty number (m19) βœ…
      test_mips_error_compiler_021 Data not aligned (m21) βœ…
      test_mips_error_compiler_022 Number not positive (m22) βœ…
      test_mips_error_compiler_023 Empty directive (m23) βœ…
      test_mips_error_compiler_030 Empty file βœ…
    • Execution:

      Click to expand
      Test Name Description In use
      test_mips_error_executor_001 Program without instructions βœ…
      test_mips_error_executor_002 main tag does not exist βœ…
      test_mips_error_executor_003 $sp register in data segment βœ…
      test_mips_error_executor_004 $sp register in text segment βœ…
      test_mips_error_executor_005 Memory writing in text segment βœ…
      test_mips_error_executor_006 Memory reading from text segment βœ…
      test_mips_error_executor_007 Memory write not aligned βœ…
      test_mips_error_executor_008 Memory read not aligned βœ…
      test_mips_error_executor_009 Write to register without permision βœ…
    • Sentinel (tests that check the parameter passing convention):

      Click to expand
      Test Name Description In use
      test_mips_sentinels_001 Changing the a0 register inside test function βœ…
      test_mips_sentinels_002 Changing the a1 register inside the test function βœ…
      test_mips_sentinels_003 Changing the a2 register inside the test function βœ…
      test_mips_sentinels_004 Changing the a3 register inside the test function βœ…
      test_mips_sentinels_005 Changing the fp register inside the test function βœ…
      test_mips_sentinels_006 Changing the gp register inside the test function βœ…
      test_mips_sentinels_007 Changing the k0 register inside the test function βœ…
      test_mips_sentinels_008 Changing the k1 register inside the test function βœ…
      test_mips_sentinels_009 Changing the ra register inside the test function βœ…
      test_mips_sentinels_010 Changing the s0 register inside the test function βœ…
      test_mips_sentinels_011 Changing the s1 register inside the test function βœ…
      test_mips_sentinels_012 Changing the s2 register inside the test function βœ…
      test_mips_sentinels_013 Changing the s3 register inside the test function βœ…
      test_mips_sentinels_014 Changing the s4 register inside the test function βœ…
      test_mips_sentinels_015 Changing the s5 register inside the test function βœ…
      test_mips_sentinels_016 Changing the s6 register inside the test function βœ…
      test_mips_sentinels_017 Changing the s7 register inside the test function βœ…
      test_mips_sentinels_018 Changing the sp register inside the test function βœ…
      test_mips_sentinels_019 Changing the t0 register inside the test function βœ…
      test_mips_sentinels_020 Changing the t1 register inside the test function βœ…
      test_mips_sentinels_021 Changing the t2 register inside the test function βœ…
      test_mips_sentinels_022 Changing the t3 register inside the test function βœ…
      test_mips_sentinels_023 Changing the t4 register inside the test function βœ…
      test_mips_sentinels_024 Changing the t5 register inside the test function βœ…
      test_mips_sentinels_025 Changing the t6 register inside the test function βœ…
      test_mips_sentinels_026 Changing the t7 register inside the test function βœ…
      test_mips_sentinels_027 Changing the t8 register inside the test function βœ…
      test_mips_sentinels_028 Changing the t9 register inside the test function βœ…
      test_mips_sentinels_029 Changing the v0 register inside the test function βœ…
      test_mips_sentinels_030 Changing the v1 register inside test function βœ…
      test_mips_sentinels_031 Changing the s0 register inside the test function and saving to the stack βœ…
      test_mips_sentinels_032 Changing the s0 register inside the test function and saving on stack, but without restoring βœ…
      test_mips_sentinels_033 Changing register s0 inside the test function and saving to stack, but restoring another address βœ…
      test_mips_sentinels_034 Changing register s0 inside the test function and saving to stack, but restoring another size βœ…
      test_mips_sentinels_035 Changing of register s0 inside the test function and saving to stack, but the stack is overwritten βœ…
    • Instructions (tests that check the instruction set):

      Click to expand
      Test Name Description In use
      test_mips_instruction_001 add βœ…
      test_mips_instruction_002 addi βœ…
      test_mips_instruction_003 sub βœ…
      test_mips_instruction_004 lui βœ…
      test_mips_instruction_005 jal βœ…
      test_mips_instruction_006 jalr βœ…
      test_mips_instruction_007 beq βœ…
      test_mips_instruction_008 bne βœ…
      test_mips_instruction_009 blt βœ…
      test_mips_instruction_010 bge βœ…
      test_mips_instruction_011 bltu βœ…
      test_mips_instruction_012 bgeu βœ…
      test_mips_instruction_013 lb, lh, lw, sb, sh, sw βœ…
      test_mips_instruction_014 lbu, lhu βœ…
      test_mips_instruction_015 slti βœ…
      test_mips_instruction_016 sltiu βœ…
      test_mips_instruction_017 xori βœ…
      test_mips_instruction_018 ori βœ…
      test_mips_instruction_019 andi βœ…
      test_mips_instruction_020 div-2reg βœ…
      test_mips_instruction_021 divu-2reg βœ…
      test_mips_instruction_022 rotr βœ…
      test_mips_instruction_023 sll βœ…
      test_mips_instruction_024 slt βœ…
      test_mips_instruction_025 sltu βœ…
      test_mips_instruction_026 xori βœ…
      test_mips_instruction_027 srl βœ…
      test_mips_instruction_028 sra βœ…
      test_mips_instruction_029 or βœ…
      test_mips_instruction_030 and βœ…
      test_mips_instruction_031 l.d y s.d βœ…
      test_mips_instruction_032 mult βœ…
      test_mips_instruction_033 multu βœ…
      test_mips_instruction_034 mul βœ…
      test_mips_instruction_035 addu βœ…
      test_mips_instruction_036 addiu βœ…
      test_mips_instruction_037 b βœ…
      test_mips_instruction_038 div βœ…
      test_mips_instruction_039 divu βœ…
      test_mips_instruction_040 rem/mod βœ…
      test_mips_instruction_041 modu βœ…
      test_mips_instruction_042 bgt βœ…
      test_mips_instruction_043 bgtu βœ…
      test_mips_instruction_044 ble βœ…
      test_mips_instruction_045 bleu βœ…
      test_mips_instruction_046 nor βœ…
      test_mips_instruction_047 nop βœ…
      test_mips_instruction_048 move βœ…
      test_mips_instruction_049 mthi, mtlo, mfhi, mflo βœ…
      test_mips_instruction_050 subu βœ…
      test_mips_instruction_051 beqz βœ…
      test_mips_instruction_052 bgez βœ…
      test_mips_instruction_053 bgezal βœ…
      test_mips_instruction_054 bgtz βœ…
      test_mips_instruction_055 blez βœ…
      test_mips_instruction_056 blt βœ…
      test_mips_instruction_057 bnez βœ…
      test_mips_instruction_058 sqrt.s/d, li.s/d βœ…
      test_mips_instruction_059 add.s/d βœ…
      test_mips_instruction_060 sub.s/d βœ…
      test_mips_instruction_061 abs.s/d βœ…
      test_mips_instruction_062 mul.s/d βœ…
      test_mips_instruction_063 div.s/d βœ…
      test_mips_instruction_064 rsqrt.s/d βœ…
      test_mips_instruction_065 cvt.s.d/d.s βœ…
      test_mips_instruction_066 cvt.w.d/w.s βœ…
      test_mips_instruction_067 cvt.s.w/cvt.d.w βœ