Skip to content

Commit 80ef29b

Browse files
committed
Bump version
1 parent a5ceeee commit 80ef29b

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

.github/workflows/publish_to_pypi.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ jobs:
4242
url: https://pypi.org/p/syntax-symphony
4343
permissions:
4444
id-token: write # IMPORTANT: mandatory for trusted publishing
45-
4645
steps:
4746
- name: Download all the dists
4847
uses: actions/download-artifact@v3

pyproject.toml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "syntax_symphony"
7-
version = "0.0.2"
7+
version = "0.1.0"
88
description = "Efficient grammar-based fuzzer."
99
readme = "README.md"
1010
requires-python = ">=3.10"
@@ -18,8 +18,13 @@ keywords = ["fuzzer", "fuzzing", "testing", "grammar", "grammars"]
1818
classifiers = [
1919
"Operating System :: OS Independent",
2020
"Programming Language :: Python :: 3",
21-
"Development Status :: 2 - Pre-Alpha",
21+
"Programming Language :: Python :: 3.10",
22+
"Development Status :: 3 - Alpha",
23+
"Topic :: Software Development",
24+
"Topic :: Software Development :: Quality Assurance",
2225
"Topic :: Software Development :: Testing",
26+
"Topic :: Security",
27+
"Topic :: Utilities",
2328
"Intended Audience :: Developers",
2429
]
2530
dependencies = ["schema >= 0.7.7"]

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
from setuptools import setup
22

3-
setup(name="syntax_symphony", version="0.0.2")
3+
setup(name="syntax_symphony", version="0.1.0")

src/syntax_symphony/fuzzer.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import copy
2+
from itertools import chain
23
import random
34
from collections import deque
45
from typing import Callable, Generator, Iterable
@@ -9,7 +10,7 @@
910
class SyntaxSymphony:
1011
"""An efficient grammar-based fuzzer.
1112
12-
The Kalashnikov fuzzer aims to cover all elements of the grammar
13+
The SyntaxSymphony fuzzer aims to cover all elements of the grammar
1314
utilizing a k-path coverage strategy. The size of the k-paths can be
1415
adjusted by the user.
1516
Additionally, the fuzzer provides a mechanism to control the size
@@ -314,6 +315,16 @@ def expand_tree(tree: DT, path: list[list[str]], depth: int) -> DT:
314315
assert item.children is None
315316
return expand_tree(DT(item.symbol, None), path, 0)
316317

318+
def remaining_k_paths(self) -> int:
319+
"""Computes the number of remaining uncovered k-paths.
320+
321+
Returns:
322+
int: The number of remaining uncovered k-paths.
323+
"""
324+
return len(
325+
list(chain.from_iterable(list(self.uncovered_k_paths.values())))
326+
)
327+
317328
def tree_fuzz(self, tree: DT) -> DT:
318329
"""Fuzzes a derivation tree by expanding the unexpanded nonterminals.
319330

0 commit comments

Comments
 (0)