A smart test framework for cairo-lang and starknet based on pytest and hypothesis
Project description
The Cairo smart test suite
Author: Jamie Gabbay
What is this?
This repository contains cairotest; an automated unit- and property-based test suite for the Cairo programming language.
I am pleased to share this with the Cairo community, and feedback and suggestions are welcome.
How to use Cairo test suite
Examples
You can see practical usage in my cairo-integer-types library. See any file whose name begins with test_, as in test_biguint.py or test_uint125.py.
A short tutorial is also here.
Install
You'll need a working Cairo installation.
-- so do that first! The rest of these instructions assume you're in a Cairo virtual environment. We'll also assume you're using a Linux system; YMMV on other systems but the overall idea should be the same.
Why do we need a Cairo test framework?
Seriously? You do!
The code in this repo has been tested using a unit- and property-based test suite specifically designed to work well with Cairo.
My install
This is what I type to get Cairo set up on a new machine running Debian linux. Help yourself (but don't blame me if something goes wrong):
# Make sure the system's up-to-date
sudo apt update
sudo apt upgrade
# Stuff we need to compile Python 3.7
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev wget libbz2-dev libgmp-dev
# Download Python 3.7 and cd into directory
wget https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tgz
tar xvzf Python-3.7.13.tgz
cd Python-3.7.13
# Configure compilation
./configure --enable-optimizations
# Make (8 core system)
make -j 8
# Install
# IMPORTANT: altinstall means we don't overwrite your machine's native version of Python!
sudo make altinstall
# Create Python3.7 virtual environment
python3.7 -m venv ~/cairo_venv-3.7
# Jump into the venv
source ~/cairo_venv-3.7/bin/activate
# Install prerequisites to run cairo-bitwise-int and cairo-test (works for Cairo 0.8)
pip3 install jinja2 pytest pytest-reverse hypothesis cairo-lang black pytest-xdist[psutil]
Feedback and comments ...
... are very welcome. Thanks in advance.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cairotest-0.2.2-py3-none-any.whl.
File metadata
- Download URL: cairotest-0.2.2-py3-none-any.whl
- Upload date:
- Size: 21.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd37ad0b977de4a568503064de0447ccf32f8f5be2caac11fef3d8abec65641b
|
|
| MD5 |
04b773de3d95bfff69874c291835553c
|
|
| BLAKE2b-256 |
8d017beb27e20aafbf95b3abdd09a34ddd4adc00126d46b189dbf3667b07c901
|