avast / avast/retdec

Hunting for nondeterminism in our tools

Open
#209 1 comment 0 reactions 0 assignees View on GitHub
C-tests Q-discussion T-nondeterminism
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

From time to time, we notice nondeterminism in some of our tools. We try to fix it once it is identified. It would be nice to be able to automatically and periodically test for it. We should ideally test:
- Diffs in several runs of the same build.
- Diffs in runs of different builds (compilers, options, etc.).
- Diffs in runs on different systems (Linux/Windows).
Moreover, there might be some inherent nondeterminisms - time stamps, absolute paths, etc.

Right now, I have no idea how to do something like this. If anyone have any suggestion, please comment.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no files, tests, or entry points, so start by surveying the tool execution flow and the existing build and CI setup. Determine where repeated builds and cross-system runs could be compared, then define completion as periodic checks that report meaningful differences while accounting for timestamps, absolute paths, and other inherent nondeterminism.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system, compilers, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.