https://github.com/biogui/simulador-runcodes
[PT-BR] Um script em python que simula o processo de correção do run.condes para programas em C ou compilados/executados via Makefile.
https://github.com/biogui/simulador-runcodes
c-language makefiles python-scripts valgrind
Last synced: 3 months ago
JSON representation
[PT-BR] Um script em python que simula o processo de correção do run.condes para programas em C ou compilados/executados via Makefile.
- Host: GitHub
- URL: https://github.com/biogui/simulador-runcodes
- Owner: biogui
- License: mit
- Created: 2020-09-02T17:58:57.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-07-20T04:18:06.000Z (about 4 years ago)
- Last Synced: 2025-06-06T01:41:40.811Z (4 months ago)
- Topics: c-language, makefiles, python-scripts, valgrind
- Language: Python
- Homepage:
- Size: 21.5 KB
- Stars: 22
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# **Simulador runcodes**
[](https://docs.python.org/release/3.9.0/whatsnew/changelog.html#changelog)
[](https://github.com/biogui/simple-image-editor-with-openCV/blob/master/LICENSE)Olá, eu sou o [Bio](https://github.com/biogui)!
E esse é um script em python para usuários do [run.codes](https://we.run.codes/) testarem seus programas localmente.
Obrigado por testar, feedbacks são bem vindos no meu telegram [(clica aqui)](https://t.me/gui_bio) :) .
## **Recursos** (exemplos no fim)
- ***Contagem de casos corretos***, mostrando o resultado em relação ao total de casos.- ***Verificação de diferenças detalhada***, feita via comparação byte a byte da saída esperada com a saída gerada.
- ***Checagem de memória***, feita via comando `valgrind`, detalhando "bugs" em relação ao uso geral de memória.
## **Instalando**
Certifique-se de:
- Ter uma versão recente [(3.x.x)](https://www.python.org/downloads/) de ***python*** instalada.
- Ter as seguintes ferramentas disponíveis em seu terminal Linux:
- ***gcc*** - use `sudo apt install gcc`
- ***valgrind*** - use `sudo apt install valgrind`
- ***unzip*** - use `sudo apt install unzip`Depois disso, basta clonar o repositório e rodar o ***setup.sh***:
```bash
git clone https://github.com/biogui/simulador-runcodes.git ~/.rcSim
``````bash
cd ~/.rcSim
``````bash
sh setup.sh
```## **Uso**
Agora, em qualquer diretório, basta ***usar o comando `rcsim`***:
```bash
rcsim
```***Obs.:*** *`rcsim` pode ser trocado por `python3 rcSim.py`, mas é necessário que o script do simulador esteja na pasta atual.*
#### **O ``**
Esse simulador suporta dois tipos de programas: aqueles com um único arquivo .c e aqueles compilados/executados via arquivo Makefile. Em `` deve ser passado o caminho (absoluto ou relativo) desse arquivo .c ou Makefile.#### **O ``**
Esse simulador suporta dois modos de adição de testes: via uma pasta contendo as entradas (arquivos do tipo .in) e as respectivas saídas esperadas (arquivos do tipo .out) ou um arquivo .zip arquivo de mesmo conteúdo. Em `` deve ser passado o caminho (absoluto ou relativo) dessa pasta ou desse arquivo .zip.#### **O `` (opcional)**
Esse simulador suporta dois modos de adição de arquivos para execução, caso necessário: via uma pasta contendo os arquivos necessários ou um arquivo .zip arquivo de mesmo conteúdo. Em `` deve ser passado o caminho (absoluto ou relativo) dessa pasta ou desse arquivo .zip.***Obs.:*** *`` pode ser igual ao ``, o simulador organiza os testes e arquivos em novas pastas ("rcSimTestes", "rcSimArquivos" e "rcSimSaidas") criadas durante execução do script. Essas pastas não são deletadas automaticamente ao fim da execução, para, caso ocorrá algum erro, o usuário possa verificar as saídas. Ao fim do uso basta rodar `rm -rf rcSim*` para limpar os dados gerados pelo simulador.*
## **Notas**
- ***Priorize rodar o simulador na pasta onde está contido seu programa ou arquivo Makefile***.
- ***Evite matar o processo durante sua execução***. Interrupções inesperadas podem gerar problemas futuros, seja paciente.
- ***Atente-se à organização dos casos testes na pasta ou arquivo .zip usado***. Certifique-se de que o número de entradas é equivalente ao número de saídas esperadas e de que exista a respectiva saída "x.out" para cada entrada "x.in".## **Exemplos**
- ***Contagem de casos corretos***


- ***Verificação de diferenças detalhada***




- ***Checagem de memória***




