The SamplingPruner implements "normal" sampling with equivalence-class
reuse. Unlike the FESamplingPruner, the SamplingPruner implements
uniform fault-space sampling that counts multiple hits of an
equivalence class.
This change modifies the database schema, more specifically it adds
the "weight" column to the fspgroup table. Update existing databases
with this query:
ALTER TABLE fspgroup ADD COLUMN weight INT UNSIGNED;
Change-Id: I668fc9b25fc4d79a60aa1ef8d69cdf5fa076cc6d
SumTree::get now non-intrusively picks an element and returns a
reference to it, SumTree::remove removes and returns a copy. The
former is needed for sampling with replacement.
Change-Id: Iefef2fdf0b7df6ea7a9949f2588528ec9e86bb7a
In the sampling step, the --no-weighting switch disables the
equivalence-class weighting by using a weight of one instead of the
equivalence-class size. This is usually not a good idea, and should
only be used for demonstration purposes, or if the fault model
requires weight-less sampling.
Change-Id: Id903d1924c6ecbcd217815aa5ce9271560130071
The --use-known-results switch simulates sampling (with fault
expansion, FESamplingPruner) by reusing results from a previous
campaign covering the full fault space (that used the "basic" pruner).
The pruner only creates entries in the "fspgroup" table that refer to
already existing pilots and corresponding results.
This switch is not for normal Fail* use, but only for experimenting
with the FESamplingPruner.
Change-Id: I1bf561d93f55918d243c5306551a1c6b48027198
The project version number is now not user-editable anymore, and
custom values get overwritten by force. Without this change,
CMakeCache.txt stays at the version number it was first instantiated
from.
Change-Id: If9ad1549937dad98db9a0f0eda16ef752e7d74aa
This change fixes several file-descriptor leaks in the DwarfReader
implementation. The patch is taken from Richard Hellwig's not yet
merged change I161f626d12ca7f2b7b9d13ba9cbc254eb55692f1. I did not
apply any white-space cleanups to prevent conflicts when Richard's
change will be merged later.
Change-Id: Icd9c1bdeeab39e77900e2ce88b756a8cf7ade96a
This change makes sure an active but not-yet fired listener does not fire
anymore if it gets removed. In this case, the listener already has an
invalid index, but still needs to be copied to the delete list.
This issue has not been observed in the wild, and is unlikely to have
caused real problems in the past.
Change-Id: I8be8a5b1d4cdc783a092b93f34f33b969894e5da
This commit changes the entities in a ResultSet from listener indexes
(into ListenerManagers m_BufferList) to BaseListener pointers, as
ListenerManager::makeActive(BaseListener*) (called from
FastBreakpoints/Watchpoints.ah) may invalidate indexes temporarily
stored in a ResultSet. The issue occurs when multiple breakpoints
(watchpoints) fire at the same time, and one added more recently than
the others occupies the largest index position in m_BufferList.
Although this issue is extremely rare and was only observed in a few
corner cases up to now, it may have falsified results in the past.
Change-Id: I7b788a06d412f15700ca75f56f2be5d3b78465fa
The project version number is now not user-editable anymore, and
custom values get overwritten by force. Without this change,
CMakeCache.txt stays at the version number it was first instantiated
from.
Change-Id: If9ad1549937dad98db9a0f0eda16ef752e7d74aa
This script removes dangling rows from the database, for example
'trace' entries with a variant_id not mentioned in the 'variants'
table, or result rows referencing a nonexistent 'fsppilot' entry.
IOW, this script enforces referential integrity as it would be
maintained by foreign key constraints (that can only be used with
InnoDB tables).
Change-Id: I4dce1e46277d470f8c3eca31447ca71f63c6353f
This one omitted mappings to the first static instruction belonging to a
high-level source-code line.
Change-Id: I14427021e61f27a8b029fb56fad2ba813652422a
Using "$x .= $y" instead of "$x = $x . $y" is actually an extreme
speedup for long $x. I had no idea PHP's "compiler" was that bad and
doesn't optimize this.
Change-Id: I39aec5f14f45b75a2467d8074b5ea2ffe5d4b856
The dbg_methods, dbg_variables and dbg_stacktrace tables are not
needed by the current VisualFAIL implementation.
Change-Id: I5f685c7d8100fe57fb2a23e1f8161770e64c9464
Luckily this didn't work as advertised, as the global connection
variable wasn't imported into the functions' scopes.
Change-Id: I080a32c6418deb3da3578987ec8a181b047608ad
This change alters/corrects DwarfReader's way of determining the size of
linetable entries (i.e. their "range size"); the interface (e.g. to
ElfReader) stays the same. Prior to this, it was assumed that static
instructions within "the linetable" were sorted in ascending order. This
assumption turned out to be false, as every compilation unit's header has
its own linetable and the compilation unit headers are not sorted by their
static instructions.
Furthermore this change implements normalization of file names.
Change-Id: Ia4beb7bf9cfb6f1a499aeebd01228335b70ab52d
Since the AspectC++ daily builds switched to the clang frontend, Fail*
doesn't build anymore. Unless that changes, use the 1.2 release.
Change-Id: Ia7817c396dfabd3a10f0cf0ea6a8d4c1fb95365d
This prevents the client script from continuously invoking
the fail-client when it is not executable, e.g., in the case
of missing libraries.
Change-Id: I2746eaf1980507dbd7c95fb5a6a1cc018a33aa67