Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jgigault/42FileChecker
42FileChecker is a tiny bash script developed at 42 school for testing and checking files according to the rules of the subjects
https://github.com/jgigault/42FileChecker
42 42born2code 42school shell
Last synced: 3 months ago
JSON representation
42FileChecker is a tiny bash script developed at 42 school for testing and checking files according to the rules of the subjects
- Host: GitHub
- URL: https://github.com/jgigault/42FileChecker
- Owner: jgigault
- License: apache-2.0
- Created: 2014-11-24T14:41:10.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-10-12T14:11:35.000Z (about 5 years ago)
- Last Synced: 2024-07-30T23:06:41.250Z (3 months ago)
- Topics: 42, 42born2code, 42school, shell
- Language: Shell
- Homepage:
- Size: 509 KB
- Stars: 304
- Watchers: 22
- Forks: 54
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-42 - 42FileChecker - Tiny bash script for testing and checking files according to the rules of the subjects. (Cursus / Testers)
README
# 42FileChecker
42FileChecker is a tiny bash script developed at 42 school for testing and checking the files according to the rules of the subjects.
The script is designed as a reminder:
* author file terminated by a Line Feed
* count and files name
* code's standard
* required and forbidden functions
* macro definitions
* static variables & functions declarations
* makefile rulesExtra tests may also be performed:
* memory leaks detection
* speed test comparison
* Unit TestsComplete unit tests are handled through external frameworks whose sources are automatically downloaded, configured and updated in background when you run the script:
* [**moulitest**](https://github.com/yyang42/moulitest), developed by [@yyang42](https://github.com/yyang42) and other contributors
* [**libft-unit-test**](https://github.com/alelievr/libft-unit-test), developed by [@alelievr](https://github.com/alelievr)
* [**fillit_checker**](https://github.com/anisg/fillit_checker), developed by [@anisg](https://github.com/anisg)
* [**Maintest**](https://github.com/QuentinPerez/Maintest), developed by [@QuentinPerez](https://github.com/QuentinPerez) and other contributors
* [**42ShellTester**](https://github.com/we-sh/42ShellTester), developed by [@gabkk](https://github.com/gabkk) and [@jgigault](https://github.com/jgigault)## install & launch
```bash
git clone https://github.com/jgigault/42FileChecker ~/42FileChecker
cd ~/42FileChecker && bash ./42FileChecker.sh
```
You may also want to set an alias to run it from everywhere, even in your project path. Add this line of code at the end of your shell initialization file (e.g.: `~/.zshrc`):
```bash
alias 42FileChecker='bash ~/42FileChecker/42FileChecker.sh'
```
At launch, 42FileChecker invites you to get the latest version of the sources when available. You may just simply accept or skip the message.## non-interactive mode
The non-interactive mode enables you to launch a test suite without any prompt.
You must specify the two options `--project` and `--path`.
Here is an example of use with the project `libft`:
```bash
bash ~/42FileChecker/42FileChecker.sh --project "libft" --path "/Users/admin/Projects/libft/"
```## options
#### `--project` + *`$PROJECT`*
Required for non-interactive mode.
Specify the name of the project you want to test.
e.g.: `bash ./42FileChecker.sh --project "libft"`.
Must be one of the following values: `fillit`, `libft`, `libftasm`, `gnl`, `get_next_line`, `ft_ls`, `ft_printf`, `minishell`.#### `--path` + *`$PATH`*
Required for non-interactive mode.
This option has no effect when used without the option `--project`.
Specify the absolute path of directory of your project.
e.g.: `bash ./42FileChecker.sh --project "libft" --path "/Users/admin/Projects/libft/"`.#### `--no-update`
Do not check for updates at launch.
#### `--no-color`
Do not display color tags.
#### `--no-timeout`
Disable timeout.
##### `--no-disclaimer`, `--no-auteur`, `--no-author`, `--no-norminette`, `--no-leaks`, `--no-speedtest`, `--no-basictests`, `--no-makefile`, `--no-forbidden`, `--no-staticdeclarations`, `--no-libftfilesexists`, `--no-gnlmultiplefd`, `--no-gnlonestatic`, `--no-gnlmacro`, `--no-gnltofreeornottofree`, `--no-moulitest`, `--no-libftunittest`, `--no-fillitchecker`, `--no-maintest`, `--no-42shelltester`
Disable a specific test.
## supported projects
fillit
libft
libftasm
gnl
ft_ls
ft_printf
minishell
author file
Yes
Yes
Yes
Yes
Yes
Yesnorminette
Yes
YesYes
Yes
Yes
Yesmakefile
Yes
Yes
Yes
Yes
Yes
Yes
Yesforbidden functions
Yes
Yes
Yes
Yes
Yes
Yes
Yesextra functions
Yes
Yesleaks
Yes
Yes
Yesspeed test
Yes
Yesunit tests
Yes
Yes
YesYes
integration tests
YesYes
Yes
## official team and credits
42FileChecker is an open source project distributed under licence [Apache 2.0](https://github.com/jgigault/42FileChecker/blob/master/LICENCE).
Originally developed by Jean Michel Gigault [@jgigault](https://github.com/jgigault), the team also is composed of:
- [@Seluj78](https://github.com/Seluj78)
- [@adibk](https://github.com/adibk)
- [@kalak-io](https://github.com/kalak-io)## logo credits
Edouard Audeguy
Illustrateur / Infographiste
https://edouardaudeguy.wix.com/portfolio## contribute
If you want to be part of the project, to fix and to improve the 42FileChecker, please follow the guide lines [**Contributing to 42FileChecker**](https://github.com/jgigault/42FileChecker/wiki/Contributing-to-42FileChecker), or if you want your own unit testing framework to be integrated in the 42FileChecker, just let me know at **[email protected]**.
42FileChecker has an [**online wiki**](https://github.com/jgigault/42FileChecker/wiki) that gives you tips and lessons in Bash programming.
## Known Issues
* At 42 school, when running the `leaks` test for the first time, a box can appear and prompt you for administrator username and password. Run the `leaks` command outside of 42FileChecker and enter `exam` and `exam` as username and password, then everything should go along.
# other scripts