🧵 Generate self-describing strings of a given length to help aid software testing

Related tags

rust testing-tools
Overview

logo

rust-counter-strings

Counter strings generator written in rust to help aid software testing

What is a counterstring?

"A counterstring is a graduated string of arbitrary length. No matter where you are in the string, you always know the character position. This comes in handy when you are pasting huge strings into fields and they get truncated at a certain point" - James Bach

How do I use a counterstring?

"Each asterisk in the string occurs at a position specified by the immediately preceding number. Thus, the asterisk following the 29 is the 29th character in that string. So, you can chop the end of the string anywhere, and you know exactly where it was cut. Without having to count, you know that the string 2*4*6*8*11*14*17*2 has exactly 18 characters in it. This saves some effort when you’re dealing with a half million characters. I pasted a 4000 character counterstring into the address field and it was truncated at 2045*20, meaning that 2047 characters were pasted." - James Bach

Docker Usage

  • docker pull thomaschaplin/rust-counter-strings
  • docker run --rm -it thomaschaplin/rust-counter-strings <NUMBER>

Development Setup

Make sure you have rust installed on your machine by following the getting started guide

Instructions

  • Clone this repository git clone [email protected]:thomaschaplin/rust-counter-strings.git
  • Change directory cd rust-counter-strings
  • Build the application cargo build
  • Run the application cargo run <NUMBER>

Final Build

  • Build the application in release mode cargo build --release
  • Execute the rust-counter-strings binary file found in target/release/rust-counter-strings

Example Usage:

./rust-counter-strings 50

2*4*6*8*11*14*17*20*23*26*29*32*35*38*41*44*47*50*

Local Docker Setup

Build

docker build --rm -f Dockerfile -t thomaschaplin/rust-counter-strings .

Run

docker run --rm -it thomaschaplin/rust-counter-strings <NUMBER>

Rope graphic by Alpenx Nbr from ClipArtKey.

Issues
Owner
Thomas Chaplin
Software Development Engineer in Test
Thomas Chaplin
Rnp - A simple cloud-friendly tool for testing network reachability.

Rnp - A simple cloud-friendly tool for testing network reachability. Release Status Crates.io Github release Nuget packages NOTE: This project is in e

Riff 37 Aug 31, 2021
Automated property based testing for Rust (with shrinking).

quickcheck QuickCheck is a way to do property based testing using randomly generated input. This crate comes with the ability to randomly generate and

Andrew Gallant 1.7k Sep 17, 2021
Hypothesis-like property testing for Rust

Proptest Introduction Proptest is a property testing framework (i.e., the QuickCheck family) inspired by the Hypothesis framework for Python. It allow

Jason Lingle 852 Sep 17, 2021
Viceroy provides local testing for developers working with [email protected]

Viceroy provides local testing for developers working with [email protected] It allows you to run services written against the [email protected] APIs on your local development machine, and allows you to configure testing backends for your service to communicate with.

Fastly 16 Sep 2, 2021
A self-hosted Fuzzing-As-A-Service platform

OneFuzz A self-hosted Fuzzing-As-A-Service platform Project OneFuzz enables continuous developer-driven fuzzing to proactively harden software prior t

Microsoft 2.4k Sep 17, 2021
Custom memory allocator that helps discover reads from uninitialized memory

libdiffuzz: security-oriented alternative to Memory Sanitizer This is a drop-in replacement for OS memory allocator that can be used to detect uses of

Sergey 149 Sep 8, 2021
Structure-aware, in-process, coverage-guided, evolutionary fuzzing engine for Rust functions.

fuzzcheck Fuzzcheck is a structure-aware, in-process, coverage-guided, evolutionary fuzzing engine for Rust functions. Given a function test: (T) -> b

Loïc Lecrenier 278 Sep 19, 2021
QuickCheck bug hunting in Rust standard library data structures

BugHunt, Rust This project is aiming to provide "stateful" QuickCheck models for Rust's standard library. That is, we build up a random list of operat

Brian L. Troutwine 158 Jun 24, 2021
Declarative Testing Framework

Demonstrate allows tests to be written without as a much repetitive code within the demonstrate! macro, which will generate the corresponding full tests.

Austin Baugh 36 Sep 4, 2021
Travis CI and AppVeyor template to test your Rust crate on 5 architectures and publish binary releases of it for Linux, macOS and Windows

trust Travis CI and AppVeyor template to test your Rust crate on 5 architectures and publish binary releases of it for Linux, macOS and Windows Featur

Jorge Aparicio 1.1k Sep 15, 2021
Breaking your Rust code for fun and profit

Breaking your Rust code for fun & profit this is an architecture-preview, not all components are there This is a mutation testing framework for Rust c

null 443 Aug 19, 2021
Rewind is a snapshot-based coverage-guided fuzzer targeting Windows kernel components.

Rewind is a snapshot-based coverage-guided fuzzer targeting Windows kernel components.

Quarkslab 162 Sep 9, 2021
🐇 Fuzzing Rust code with American Fuzzy Lop

afl.rs Fuzzing Rust code with AFLplusplus What is it? Fuzz testing is a software testing technique used to find security and stability issues by provi

Rust Fuzzing Authority 1.1k Sep 16, 2021
Testing Framework for Rust

Polish Polish is Test-Driven Development done right Getting Started Installing the Package The crates.io package is kept up-to-date with all the major

Fadi Hanna Al-Kass 41 Jun 24, 2021
How-to: Sanitize your Rust code!

rust-san How-to: Sanitize your Rust code! Intro How to use the sanitizers? Examples AddressSanitizer Out of bounds access Use after free LeakSanitizer

Jorge Aparicio 318 Sep 7, 2021
ArchTest is a rule based architecture testing tool for rust

ArchTest is a rule based architecture testing tool. It applies static analyses on the specified rust project to extract use relationships.

Tom Dymel 6 Jun 16, 2021
A library for generating fake data in Rust.

Fake A Rust library for generating fake data. Installation Default (rand is required): [dependencies] fake = "2.4" rand = "0.8" If you want to use #[d

cksac 310 Sep 15, 2021
Simple goldenfile testing in Rust.

?? Rust Goldenfile Simple goldenfile testing in Rust. Goldenfile tests generate one or more output files as they run. At the end of the test, the gene

Calder Coalson 9 Jul 25, 2021
The trait for generating structured data from arbitrary, unstructured input.

Arbitrary The trait for generating structured data from arbitrary, unstructured input. About The Arbitrary crate lets you construct arbitrary instance

Rust Fuzzing Authority 194 Sep 4, 2021