Hard- and Software Requirements

Hardware Architecture x86-64, AMD64
Operating System Linux-64, typically Debian (Ubuntu) or Red Hat (Fedora) based
Software C and/or C++ compiler, typically gcc or g++

Testing Specifications

Input Any Linux executable file compiled from C or C++ source code that meets the requirements and preconditions.
  1. Pass: The test does not uncover unexpected program behavior and confirms the probability for unexpected behavior not to occur.
  2. Fail: The test does uncover unexpected program behavior and logs the test probes that caused this behavior.
  1. The Peregrine header file is included.
  2. Two Peregrine code delimiters are added around the code segment to be tested.
  3. (Selected) variables have been replaced with matching Peregrine probe types in the marked out code segment.
  4. The program source code is compiled as usual to create an executable file and is additionally linked against the Peregrine library.
Time Complexity The Peregrine testing algorithm has constant time complexity of O(1).
Space Complexity The Peregrine testing algorithm has constant space complexity of O(1).
Program Control The Peregrine tester program and the program under test run in parallel and communicate through a shared memory area. The tester program controls the execution of the marked out code segment in vivo. It injects a continuous, high-speed stream of unbiased probe values through the Peregrine Probe Types exactly there where it is most effective. The software developer runs the tester program through a command line interface, which is particularly useful for batch testing, or through a GUI.

Real-time Performance Testing is done at the execution level in real-time at the pace of the program under test. Performance of a typical test setup is determined by the time and space complexity of the marked out code segment.

Performance Example
Probe Width (bits) Probes per second Bits per second

64 11.9E6 761.9E6
32 15.4E6 492.3E6
16 17.2E6 275.9E6
8 18.9E6 150.9E6
4 18.9E6 75.5E6
2 18.9E6 37.7E6
1 18.9E6 18.9E6

The performance example shown in the table above has been measured on an x86-64 platform with an Intel E31230 CPU clocked at 3.2 GHz and with 4GB of internal memory running Linux Mate 1.12.1 with kernel version 4.4.0-101-generic.

© 2020-2022 Fluxica Computer Engineering. All rights reserved.