├── maps_err ├── no_valid_road13.ber ├── no_rectangular1.ber ├── no_valid_road6.ber ├── no_valid_road7.ber ├── no_valid_road8.ber ├── .ber ├── map1.ber ├── no_exit.ber ├── no_object.ber ├── no_player.ber ├── no_walls.ber ├── no_walls1.ber ├── no_walls2.ber ├── no_walls4.ber ├── no_walls5.ber ├── no_walls7.ber ├── no_walls8.ber ├── no_walls9.ber ├── badextension1.txt ├── badextension3.bber ├── duplicate_exit.ber ├── no_rectangular9.ber ├── no_valid_road.ber ├── no_valid_road1.ber ├── no_valid_road10.ber ├── no_valid_road11.ber ├── no_valid_road12.ber ├── no_valid_road15.ber ├── no_valid_road3.ber ├── no_valid_road4.ber ├── no_valid_road5.ber ├── no_valid_road9.ber ├── wrong_chars.ber ├── wrong_chars1.ber ├── wrong_chars2.ber ├── wrong_chars3.ber ├── wrong_chars4.ber ├── wrong_chars5.ber ├── badextension2.ber.txt ├── duplicate_player.ber ├── no_rectangular.ber ├── no_rectangular2.ber ├── no_rectangular3.ber ├── no_rectangular6.ber ├── no_rectangular8.ber ├── no_rectangular4.ber ├── no_rectangular5.ber ├── no_walls3.ber ├── no_walls6.ber ├── no_rectangular7.ber ├── no_valid_road14.ber └── no_valid_road2.ber ├── maps_valid ├── ok2.ber ├── ok3.ber ├── ok4.ber ├── ok12.ber ├── ok13.ber ├── ok11.ber ├── ok.ber ├── ok5.ber ├── ok6.ber ├── ok8.ber ├── ok9.ber ├── ok1.ber ├── ok10.ber ├── ok15.ber ├── ok14.ber └── ok7orok.ber ├── README.md └── Tester_so_long.sh /maps_err/no_valid_road13.ber: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /maps_err/no_rectangular1.ber: -------------------------------------------------------------------------------- 1 | 11111111 2 | 1EP00C1 3 | 11111111 -------------------------------------------------------------------------------- /maps_valid/ok2.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000P1 3 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok3.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1EPCCCCCCCCCCC1 3 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok4.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1ECCCCCCCCCCCP1 3 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road6.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1CEC0000C000PC1 3 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road7.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1PEC0000C0000C1 3 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok12.ber: -------------------------------------------------------------------------------- 1 | 1111111111111 2 | 10010000000C1 3 | 1000011111001 4 | 1P0011E000001 5 | 1111111111111 -------------------------------------------------------------------------------- /maps_valid/ok13.ber: -------------------------------------------------------------------------------- 1 | 1111111111111 2 | 1011CCCCCCCC1 3 | 11CCC111111C1 4 | 1PC011ECCCCC1 5 | 1111111111111 -------------------------------------------------------------------------------- /maps_valid/ok11.ber: -------------------------------------------------------------------------------- 1 | 1111111111111 2 | 1P100010000C1 3 | 1010100010001 4 | 100011E001111 5 | 1111111111111 6 | -------------------------------------------------------------------------------- /maps_err/no_valid_road8.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1PEC0000C0000C1 3 | 100100000000001 4 | 100100000000001 5 | 1C0100000000001 6 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/map1.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok5.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1ECCCCCCCCCCCC1 3 | 1CCCCCCCCCCCCC1 4 | 1CCCCCCCCCCCCC1 5 | 1CCCCCCCCCCCCC1 6 | 1CCCCCCCCCCCCC1 7 | 1CCCCCCCCCCCCP1 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok6.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 111111111111111 3 | 111111111111111 4 | 11111111CCC1111 5 | 1111111111C1111 6 | 111C111111C1111 7 | 1P00000C00000E1 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok8.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 111111111111111 5 | 100000000000001 6 | 100000000000001 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok9.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E1C1000C0011C1 3 | 1CC000C0000P001 4 | 110011111111101 5 | 1001100C011C001 6 | 1011C000C1111C1 7 | 1C1111110000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_exit.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 100C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_object.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0000000000001 3 | 10000000000P001 4 | 100001111110001 5 | 100000000000001 6 | 100000000000001 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_player.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C00000001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_walls.ber: -------------------------------------------------------------------------------- 1 | 111111110111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_walls1.ber: -------------------------------------------------------------------------------- 1 | 111111111111110 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_walls2.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000000 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_walls4.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 010000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_walls5.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111110 -------------------------------------------------------------------------------- /maps_err/no_walls7.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111C11 -------------------------------------------------------------------------------- /maps_err/no_walls8.ber: -------------------------------------------------------------------------------- 1 | 11111111111111C 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_walls9.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 11111111111111C -------------------------------------------------------------------------------- /maps_valid/ok1.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 9 | -------------------------------------------------------------------------------- /maps_valid/ok10.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 111C0000C0000C1 3 | 111100C0000P001 4 | 100001111110001 5 | 1101111E1111111 6 | 1000C0000C000C1 7 | 111111111111111 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok15.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E1C0000C0000C1 3 | 101000C0000P001 4 | 1C0001111111111 5 | 101111C00000001 6 | 100001111111101 7 | 1001000000000C1 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/badextension1.txt: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/badextension3.bber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/duplicate_exit.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0E00C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_rectangular9.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 11111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 111111111111111 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road1.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 111111111111101 5 | 1000000C0000001 6 | 1100C0000C000C1 7 | 1C1000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road10.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 100C0010C0000C1 3 | 10000100000P001 4 | 100001000000001 5 | 1000001C0000001 6 | 1000C1000C000C1 7 | 100000E00000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road11.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 100C0000C0000C1 3 | 100C00C0000P001 4 | 10CEC1111110001 5 | 101C100C0000001 6 | 100100000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road12.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 100C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1100000C0000001 6 | 1010C0000C000C1 7 | 1CE000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road15.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 100C0000C0000C1 3 | 100000C00000001 4 | 100001111110001 5 | 1000000C11E0001 6 | 1000C0010C010C1 7 | 10000001P000101 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road3.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E1C0000C0000C1 3 | 101000C0000P001 4 | 101000000000111 5 | 1010000C0000001 6 | 1100C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road4.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C00000001 4 | 110000000000001 5 | 1011000C0000001 6 | 110011000C000C1 7 | 100P00100000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road5.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C1100P001 4 | 110001100100001 5 | 1000100C0100001 6 | 1000C1101C000C1 7 | 100000010000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road9.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C1000C0000C1 3 | 100001C0000P001 4 | 100001000000001 5 | 1000001C0000001 6 | 1000C0011C000C1 7 | 100000000100001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/wrong_chars.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0*00C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/wrong_chars1.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 10 0C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/wrong_chars2.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100200C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/wrong_chars3.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C00000001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000900000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/wrong_chars4.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 10@0000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/wrong_chars5.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1EeC0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/badextension2.ber.txt: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/duplicate_player.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 10000000000P001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_rectangular.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 10001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 9 | -------------------------------------------------------------------------------- /maps_err/no_rectangular2.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C000 0P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_rectangular3.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C11 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_rectangular6.ber: -------------------------------------------------------------------------------- 1 | 1111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_rectangular8.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 1111111111111111 -------------------------------------------------------------------------------- /maps_err/no_rectangular4.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 d 7 | 100000000000001 8 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_rectangular5.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0 4 | 000P001 5 | 100001111110001 6 | 1000000C0000001 7 | 1000C0000C000C1 8 | 100000000000001 9 | 111111111111111 -------------------------------------------------------------------------------- /maps_err/no_walls3.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 9 | 111111011111111 -------------------------------------------------------------------------------- /maps_err/no_walls6.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 9 | 000000000000000 -------------------------------------------------------------------------------- /maps_err/no_rectangular7.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 100001111110001 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 9 | 10 | -------------------------------------------------------------------------------- /maps_err/no_valid_road14.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1C0C0010C0000C1 3 | 101111011000001 4 | 1000E0000100001 5 | 1000100P0100001 6 | 100010000100001 7 | 100011C111000C1 8 | 100000100000001 9 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok14.ber: -------------------------------------------------------------------------------- 1 | 1111111111111 2 | 1111110111111 3 | 1111110111111 4 | 10010000000C1 5 | 1000011111001 6 | 1P0011E000001 7 | 1111110C11111 8 | 1111110111111 9 | 1111110111111 10 | 1111111111111 -------------------------------------------------------------------------------- /maps_err/no_valid_road2.ber: -------------------------------------------------------------------------------- 1 | 111111111111111 2 | 1E0C0000C0000C1 3 | 100000C0000P001 4 | 111101011110111 5 | 1000000C0000001 6 | 1000C0000C000C1 7 | 100000000000001 8 | 111111111111111 9 | 1111111C1111111 10 | 111111111111111 -------------------------------------------------------------------------------- /maps_valid/ok7orok.ber: -------------------------------------------------------------------------------- 1 | 111111111111111111111111111111 2 | 111111111111111111111111111111 3 | 111111111111111111111111111111 4 | 11111111111111C111111111111111 5 | 1111111111111PCE11111111111111 6 | 11111111111111C111111111111111 7 | 111111111111111111111111111111 8 | 111111111111111111111111111111 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🎮 So_long-Tester 2 | 3 | This Tester checks: 4 | 5 | ▪️ Memory leaks on erroneous maps 6 | 7 | ▪️ Valid extensions 8 | 9 | ▪️ Permissions 10 | 11 | ▪️ Valid arguments 12 | 13 | ▪️ Rectangular maps 14 | 15 | ▪️ No incorrect characters 16 | 17 | ▪️ Player and output are not duplicated 18 | 19 | ▪️ Entire map is surrounded by walls 20 | 21 | ▪️ Required characters (E, P, C, 1) 22 | 23 | ▪️ Don't throw error on valid maps 24 | 25 | ▪️ Your program does not terminate unexpectedly. 26 | 27 | Screen Shot 2024-04-22 at 8 15 37 PM 28 | 29 | 30 | # 💡 How to use 31 | 32 | You should clone this repository with the following command: 33 | 34 | ```SH 35 | git clone git@github.com:gemartin99/So_long-Tester.git 36 | ``` 37 | 38 | Once the repository has been cloned, we will place it inside the repository with the following command: 39 | 40 | ```SH 41 | cd So_long-Tester/ 42 | ``` 43 | 44 | Now we must copy all the content of the repository that we have just cloned and paste it in our folder where the so_long program is located. We will make use of the following command: 45 | 46 | ```SH 47 | cp -r Tester_so_long.sh maps_err maps_valid /path/to/so_long 48 | ``` 49 | 50 | Once we have copied everything to the correct path we only have to execute the script with the following command: 51 | 52 | ```SH 53 | bash Tester_so_long.sh 54 | ``` 55 | 56 | # Author ✍🏼 57 | 58 | 59 | 60 | 61 | 62 |
100px
gemartin

Intra 42
63 | 64 | # Maybe it would interest you! 65 | 66 | ### - To check my progression in 42 common core ↙️ 67 | 68 | [HERE](https://github.com/gemartin99/42cursus) 69 | 70 | ### - My 42 intra profile ↙️ 71 | [HERE](https://profile.intra.42.fr/users/gemartin) 72 | 73 | # Contact 📥 74 | 75 | ### Contact with me if you fine some errors! That will help future students! 😁 76 | 77 | ◦ Email: gemartin@student.42barcelona.com 78 | 79 | ◦ Linkedin: https://www.linkedin.com/in/gemartin99/ 80 | -------------------------------------------------------------------------------- /Tester_so_long.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # -=-=-=-=- CLRS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # 4 | 5 | DEF_COLOR='\033[0;39m' 6 | BLACK='\033[0;30m' 7 | RED='\033[1;91m' 8 | GREEN='\033[1;92m' 9 | YELLOW='\033[0;93m' 10 | BLUE='\033[0;94m' 11 | MAGENTA='\033[0;95m' 12 | CYAN='\033[0;96m' 13 | GRAY='\033[0;90m' 14 | WHITE='\033[0;97m' 15 | 16 | # -=-=-=-=- CLRS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # 17 | 18 | C=1; 19 | 20 | #Function to check erroneous maps ↓ 21 | 22 | 23 | check_error_map() { 24 | 25 | local map_file="$1" 26 | local EXPECTED_OUTPUT="$2" 27 | 28 | leaks --atExit -- ./so_long "$map_file" > /dev/null 2>&1 29 | LEAKS=$? 30 | if [ $LEAKS -eq 1 ]; then 31 | printf "${RED}$C.[MKO] LEAKS ${DEF_COLOR}" 32 | else 33 | printf "${GREEN}$C.[MOK]${DEF_COLOR}"; 34 | fi 35 | 36 | ./so_long "$map_file" > test_check.txt 37 | 38 | SO_LONG_EXIT_CODE=$? 39 | 40 | LINE=$(head -n 1 test_check.txt) 41 | LINE2=$(sed -n '2p' test_check.txt) 42 | 43 | if [ $SO_LONG_EXIT_CODE == 139 ];then 44 | printf "${RED}[KO] SEGFAULT${DEF_COLOR}\n"; 45 | ((C++)) 46 | rm -rf test_check.txt 47 | return 48 | fi 49 | 50 | 51 | if [ $LINE == "Error" ];then 52 | printf "${GREEN}[OK] ${DEF_COLOR}"; 53 | if [ -n "$LINE2" ];then 54 | if [ "${#LINE2}" -gt 1 ]; then 55 | printf "${GRAY}\nExpected output: ${DEF_COLOR} $EXPECTED_OUTPUT \n" 56 | printf "${GRAY}Your output: ${DEF_COLOR} $LINE2 \n" 57 | else 58 | printf "${RED}[KO] You must display an explicit error message${DEF_COLOR}\n"; 59 | printf "${GRAY}Expected output: ${DEF_COLOR} $EXPECTED_OUTPUT \n" 60 | fi 61 | else 62 | printf "${RED}[KO] You must display an explicit error message${DEF_COLOR}\n"; 63 | printf "${GRAY}Expected output: ${DEF_COLOR} $EXPECTED_OUTPUT \n" 64 | fi 65 | else 66 | printf "${RED}[KO] Expected output: Error${DEF_COLOR}\n"; 67 | 68 | fi 69 | 70 | ((C++)) 71 | rm -rf test_check.txt 72 | } 73 | 74 | #Function to check erroneous maps ↑ 75 | 76 | 77 | #Function to check goods maps ↓ 78 | 79 | check_valid_map() { 80 | 81 | local map_file="$1" 82 | 83 | ./so_long "$map_file" & 84 | 85 | PID=$! 86 | 87 | sleep 0.35 88 | 89 | ps $PID > /dev/null 90 | 91 | CHECK_ERROR=$? 92 | 93 | if [ $CHECK_ERROR == 0 ]; then 94 | kill $PID > /dev/null 2>&1 95 | printf "${GREEN}$C.[OK] ${DEF_COLOR}\n"; 96 | 97 | else 98 | printf "${RED}$C.[KO] ${DEF_COLOR}\n"; 99 | fi 100 | 101 | ((C++)) 102 | 103 | rm -rf test_check.txt 104 | } 105 | 106 | #Function to check goods maps ↑ 107 | 108 | rm -rf traces.txt 109 | 110 | FILE=$PWD/so_long 111 | TEST=test_check.txt 112 | 113 | if [ -f "$FILE" ]; then 114 | echo -n 115 | else 116 | printf "${RED}NO EXIST SO_LONG PROGRAM ${DEF_COLOR}\n"; 117 | exit 0 118 | fi 119 | 120 | if [ -z "$1" ]; then 121 | echo -n 122 | fi 123 | 124 | #In all these cases your program should print an error and not run the game. ↓ 125 | #En todos estos casos tu programa debera printar error y no ejecutar el juego. ↓ 126 | 127 | 128 | leaks --atExit -- ./so_long > /dev/null 2>&1 129 | LEAKS=$? 130 | if [ $LEAKS -eq 1 ]; then 131 | printf "${RED}$C.[MKO] LEAKS ${DEF_COLOR}" 132 | else 133 | printf "${GREEN}$C.[MOK]${DEF_COLOR}"; 134 | fi 135 | 136 | ./so_long > test_check.txt #1 137 | 138 | LINE=$(head -n 1 test_check.txt) 139 | LINE2=$(sed -n '2p' test_check.txt) 140 | 141 | if [ $LINE == "Error" ];then 142 | printf "${GREEN}[OK] ${DEF_COLOR}"; 143 | if [ -n "$LINE2" ];then 144 | if [ "${#LINE2}" -gt 1 ]; then 145 | printf "${GRAY}\nExpected output: ${DEF_COLOR} Wrong number of arguments \n" 146 | printf "${GRAY}Your output: ${DEF_COLOR} $LINE2 \n" 147 | else 148 | printf "${RED}[KO] You must display an explicit error message${DEF_COLOR}\n"; 149 | printf "${GRAY}Expected output: ${DEF_COLOR} Wrong number of arguments \n" 150 | fi 151 | else 152 | printf "${RED}[KO] You must display an explicit error message${DEF_COLOR}\n"; 153 | printf "${GRAY}Expected output: ${DEF_COLOR} Wrong number of arguments \n" 154 | fi 155 | else 156 | printf "${RED}[KO] Expected output: Error${DEF_COLOR}\n"; 157 | 158 | fi 159 | 160 | ((C++)) 161 | rm -rf test_check.txt 162 | 163 | leaks --atExit -- ./so_long invent.ber more argv > /dev/null 2>&1 164 | LEAKS=$? 165 | if [ $LEAKS -eq 1 ]; then 166 | printf "${RED}$C.[MKO] LEAKS ${DEF_COLOR}" 167 | else 168 | printf "${GREEN}$C.[MOK]${DEF_COLOR}"; 169 | fi 170 | 171 | ./so_long invent.ber more argv > test_check.txt #2 172 | 173 | LINE=$(head -n 1 test_check.txt) 174 | LINE2=$(sed -n '2p' test_check.txt) 175 | 176 | if [ $LINE == "Error" ];then 177 | printf "${GREEN}[OK] ${DEF_COLOR}"; 178 | if [ -n "$LINE2" ];then 179 | if [ "${#LINE2}" -gt 1 ]; then 180 | printf "${GRAY}\nExpected output: ${DEF_COLOR} Wrong number of arguments \n" 181 | printf "${GRAY}Your output: ${DEF_COLOR} $LINE2 \n" 182 | else 183 | printf "${RED}[KO] You must display an explicit error message${DEF_COLOR}\n"; 184 | printf "${GRAY}Expected output: ${DEF_COLOR} Wrong number of arguments \n" 185 | fi 186 | else 187 | printf "${RED}[KO] You must display an explicit error message${DEF_COLOR}\n"; 188 | printf "${GRAY}Expected output: ${DEF_COLOR} Wrong number of arguments \n" 189 | fi 190 | else 191 | printf "${RED}[KO] Expected output: Error${DEF_COLOR}\n"; 192 | 193 | fi 194 | 195 | ((C++)) 196 | rm -rf test_check.txt 197 | 198 | touch maps_err/permis.ber 199 | chmod 000 maps_err/permis.ber 200 | check_error_map "maps_err/permis.ber" "Permission denied" #3 201 | rm -rf maps_err/permis.ber 202 | check_error_map "invent.ber" "No exist map" #4 203 | check_error_map "maps_err/badextension1.txt" "Bad extension" #5 204 | check_error_map "maps_err/badextension2.ber.txt" "Bad extension" #6 205 | check_error_map "maps_err/badextension3.bber" "Bad extension" #7 206 | check_error_map "maps_err/.ber" "Bad extension" #8 Hidden file, not extension ber 207 | check_error_map "maps_err/no_rectangular.ber" "No rectangular" #9 208 | check_error_map "maps_err/no_rectangular1.ber" "No rectangular" #10 209 | check_error_map "maps_err/no_rectangular2.ber" "No rectangular" #11 210 | check_error_map "maps_err/no_rectangular3.ber" "No rectangular" #12 211 | check_error_map "maps_err/no_rectangular4.ber" "No rectangular" #13 212 | check_error_map "maps_err/no_rectangular5.ber" "No rectangular" #14 213 | check_error_map "maps_err/no_rectangular6.ber" "No rectangular" #15 214 | check_error_map "maps_err/no_rectangular7.ber" "No rectangular" #16 215 | check_error_map "maps_err/no_rectangular8.ber" "No rectangular" #17 216 | check_error_map "maps_err/no_rectangular9.ber" "No rectangular" #18 217 | check_error_map "maps_err/no_player.ber" "No player" #19 218 | check_error_map "maps_err/no_exit.ber" "No exit" #20 219 | check_error_map "maps_err/no_object.ber" "No object" #21 220 | check_error_map "maps_err/duplicate_player.ber" "Duplicate player" #22 221 | check_error_map "maps_err/duplicate_exit.ber" "Duplicate exit" #23 222 | check_error_map "maps_err/no_valid_road.ber" "Duplicate exit" #24 223 | check_error_map "maps_err/no_valid_road1.ber" "Duplicate exit" #25 224 | check_error_map "maps_err/no_valid_road2.ber" "Duplicate exit" #26 225 | check_error_map "maps_err/no_valid_road3.ber" "Duplicate exit" #27 226 | check_error_map "maps_err/no_valid_road4.ber" "Duplicate exit" #28 227 | check_error_map "maps_err/no_valid_road5.ber" "Duplicate exit" #29 228 | check_error_map "maps_err/no_valid_road6.ber" "Duplicate exit" #30 229 | check_error_map "maps_err/no_valid_road7.ber" "Duplicate exit" #31 230 | check_error_map "maps_err/no_valid_road8.ber" "Duplicate exit" #32 231 | check_error_map "maps_err/no_valid_road9.ber" "Duplicate exit" #33 232 | check_error_map "maps_err/no_valid_road10.ber" "Duplicate exit" #34 233 | check_error_map "maps_err/no_walls.ber" "Not surrounded by walls" #35 234 | check_error_map "maps_err/no_walls1.ber" "Not surrounded by walls" #36 235 | check_error_map "maps_err/no_walls2.ber" "Not surrounded by walls" #37 236 | check_error_map "maps_err/no_walls3.ber" "Not surrounded by walls" #38 237 | check_error_map "maps_err/no_walls4.ber" "Not surrounded by walls" #39 238 | check_error_map "maps_err/no_walls5.ber" "Not surrounded by walls" #40 239 | check_error_map "maps_err/no_walls6.ber" "Not surrounded by walls" #41 240 | check_error_map "maps_err/no_walls7.ber" "Not surrounded by walls" #😍42😍 241 | check_error_map "maps_err/no_walls8.ber" "Not surrounded by walls" #43 242 | check_error_map "maps_err/no_walls9.ber" "Not surrounded by walls" #44 243 | check_error_map "maps_err/wrong_chars.ber" "Wrong characters" #45 244 | check_error_map "maps_err/wrong_chars1.ber" "Wrong characters" #46 245 | check_error_map "maps_err/wrong_chars2.ber" "Wrong characters" #47 246 | check_error_map "maps_err/wrong_chars3.ber" "Wrong characters" #48 247 | check_error_map "maps_err/wrong_chars4.ber" "Wrong characters" #49 248 | check_error_map "maps_err/wrong_chars5.ber" "Wrong characters" #50 249 | check_error_map "maps_err/no_valid_road11.ber" "Duplicate exit" #51 250 | check_error_map "maps_err/no_valid_road12.ber" "Duplicate exit" #52 251 | check_error_map "maps_err/no_valid_road13.ber" "Duplicate exit" #53 252 | check_error_map "maps_err/no_valid_road14.ber" "Duplicate exit" #54 253 | check_error_map "maps_err/no_valid_road15.ber" "Duplicate exit" #55 254 | 255 | #In all these cases your program should run normally and not show any errors. ↓ In these cases, memory leaks are not checked, so I recommend that you check them by hand. 256 | #En todos estos casos tu programa deberá ejecutarse con normalidad y no mostrar ningun error ↓ En estos casos no se comprueban los leaks de memoria asique te recomiendo revisarlos a mano 257 | 258 | check_valid_map "maps_valid/ok.ber" #56 259 | check_valid_map "maps_valid/ok1.ber" #57 260 | check_valid_map "maps_valid/ok2.ber" #58 261 | check_valid_map "maps_valid/ok3.ber" #59 262 | check_valid_map "maps_valid/ok4.ber" #60 263 | check_valid_map "maps_valid/ok5.ber" #61 264 | check_valid_map "maps_valid/ok6.ber" #62 265 | check_valid_map "maps_valid/ok7orok.ber" #63🐙 266 | check_valid_map "maps_valid/ok8.ber" #64 267 | check_valid_map "maps_valid/ok9.ber" #65 268 | check_valid_map "maps_valid/ok10.ber" #66 269 | check_valid_map "maps_valid/ok11.ber" #67 270 | check_valid_map "maps_valid/ok12.ber" #68 271 | check_valid_map "maps_valid/ok13.ber" #69 272 | check_valid_map "maps_valid/ok14.ber" #70 273 | check_valid_map "maps_valid/ok15.ber" #71 --------------------------------------------------------------------------------