Skip to content

cacharle/philosophers_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

philosophers test

Test for the philosophers project of school 42.

screenshot

Usage

Clone this repository next to your project directory. (or change the default path in the config)

.
|- philosophers/
|- philosophers_test/
$ ./run --help
usage: run [-h] -p {0,1,2,3} [-b] [-g] [-t TIMEOUT]

Philosophers test

optional arguments:
  -h, --help            show this help message and exit
  -p {0,1,2,3}, --philo {0,1,2,3}
                        Number of the philosopher program to test
                         - 1: philo_one
                         - 2: philo_two
                         - 3: philo_three
                         - 0: all programs
  -b, --build           Build and exit
  -g, --pager           Open result.log in a pager after the test
  -t TIMEOUT, --timeout TIMEOUT
                        Change the philosopher process time (in seconds)

Tested:
 - Take 2 forks before eating
 - State switch in the correct order
   think -> fork -> fork -> eat n times -> sleep
 - Almost 0 delay between second fork taken and eat
 - Die if the death timeout is expired
 - No output after death
 - Timestamp in order
 - Only take existing fork
 - Error message and status != 0 on argument error
   (not asked by subject but easy to do and cleanner)