Compare commits
2 Commits
4b45acd0b6
...
38614aad08
Author | SHA1 | Date |
---|---|---|
Síle Ekaterin Liszka | 38614aad08 | |
Síle Ekaterin Liszka | 090d5191f7 |
|
@ -1 +0,0 @@
|
|||
include tests/*.xbc
|
37
setup.py
37
setup.py
|
@ -1,37 +0,0 @@
|
|||
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
here = pathlib.Path(__file__).parent.resolve()
|
||||
src = here / 'src'
|
||||
|
||||
sys.path.append(src.as_posix())
|
||||
|
||||
from xbc.version import version
|
||||
|
||||
long_description = (here / "README.md").read_text(encoding="utf-8")
|
||||
|
||||
setup(
|
||||
name='py-xbc',
|
||||
version=version,
|
||||
description='A library for manipulating eXtra Boot Configuration (XBC) files',
|
||||
long_description=long_description,
|
||||
long_description_content_type='text/markdown',
|
||||
url='https://gitea.treehouse.systems/VulpineAmethyst/py-xbc',
|
||||
author='Síle Ekaterin Liszka',
|
||||
author_email='sheila@vulpine.house',
|
||||
keywords='xbc, configuration, bootconfig',
|
||||
package_dir={'': 'src'},
|
||||
packages=find_packages(where='src'),
|
||||
python_requires='>=3.7, <4',
|
||||
install_requires=['pyparsing'],
|
||||
extras_require={
|
||||
'test': ['pytest'],
|
||||
},
|
||||
project_urls={
|
||||
'Bug Reports': 'https://gitea.treehouse.systems/VulpineAmethyst/py-xbc/issues',
|
||||
'Source': 'https://gitea.treehouse.systems/VulpineAmethyst/py-xbc',
|
||||
}
|
||||
)
|
|
@ -1,2 +0,0 @@
|
|||
feature.option.foo = 1
|
||||
feature.option.bar = 2
|
|
@ -1,4 +0,0 @@
|
|||
feature.option {
|
||||
foo = 1
|
||||
bar = 2
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
feature.options = "foo", "bar"
|
|
@ -1 +0,0 @@
|
|||
feature.option{foo=1;bar=2}
|
|
@ -1,21 +0,0 @@
|
|||
ftrace.event {
|
||||
task.task_newtask {
|
||||
filter = "pid < 128"
|
||||
enable
|
||||
}
|
||||
kprobes.vfs_read {
|
||||
probes = "vfs_read $arg1 $arg2"
|
||||
filter = "common_pid < 200"
|
||||
enable
|
||||
}
|
||||
synthetic.initcall_latency {
|
||||
fields = "unsigned long func", "u64 lat"
|
||||
actions = "hist:keys=func.sym,lat:vals=lat:sort=lat"
|
||||
}
|
||||
initcall.initcall_start {
|
||||
actions = "hist:keys=func:ts0=common_timestamp.usecs"
|
||||
}
|
||||
initcall.initcall_finish {
|
||||
actions = "hist:keys=func:lat=common_timestamp.usecs-$ts0:onmatch(initcall.initcall_start).initcall_latency(func,$lat)"
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
ftrace.event.synthetic.initcall_latency {
|
||||
fields = "unsigned long func", "u64 lat"
|
||||
hist {
|
||||
from {
|
||||
event = initcall.initcall_start
|
||||
key = func
|
||||
assigns = "ts0=common_timestamp.usecs"
|
||||
}
|
||||
to {
|
||||
event = initcall.initcall_finish
|
||||
key = func
|
||||
assigns = "lat=common_timestamp.usecs-$ts0"
|
||||
onmatch = func, $lat
|
||||
}
|
||||
keys = func.sym, lat
|
||||
vals = lat
|
||||
sort = lat
|
||||
}
|
||||
}
|
|
@ -1,43 +1,77 @@
|
|||
|
||||
import pytest
|
||||
|
||||
from xbc import load_xbc
|
||||
from xbc import loads_xbc
|
||||
|
||||
'''
|
||||
The tests in this file are samples drawn from
|
||||
https://lwn.net/Articles/806002/.
|
||||
'''
|
||||
|
||||
def test_01():
|
||||
i = '''feature.option.foo = 1
|
||||
feature.option.bar = 2'''
|
||||
d = {
|
||||
'feature.option': False,
|
||||
'feature': False,
|
||||
'feature.option.foo': '1',
|
||||
'feature.option.bar': '2'
|
||||
}
|
||||
assert load_xbc('tests/01-keyvalue.xbc') == d
|
||||
assert loads_xbc(i) == d
|
||||
|
||||
def test_02():
|
||||
i = '''feature.option {
|
||||
foo = 1
|
||||
bar = 2
|
||||
}'''
|
||||
d = {
|
||||
'feature.option': False,
|
||||
'feature': False,
|
||||
'feature.option.foo': '1',
|
||||
'feature.option.bar': '2'
|
||||
}
|
||||
assert load_xbc('tests/02-block-keyvalue.xbc') == d
|
||||
assert loads_xbc(i) == d
|
||||
|
||||
def test_03():
|
||||
i = 'feature.options = "foo", "bar"'
|
||||
d = {
|
||||
'feature': False,
|
||||
'feature.options': ['foo', 'bar']
|
||||
}
|
||||
assert load_xbc('tests/03-keyvalue-string.xbc') == d
|
||||
assert loads_xbc(i) == d
|
||||
|
||||
def test_10():
|
||||
i = 'feature.option{foo=1;bar=2}'
|
||||
d = {
|
||||
'feature.option': False,
|
||||
'feature': False,
|
||||
'feature.option.foo': '1',
|
||||
'feature.option.bar': '2'
|
||||
}
|
||||
assert load_xbc('tests/10-compact.xbc') == d
|
||||
assert loads_xbc(i) == d
|
||||
|
||||
def test_11():
|
||||
i = '''ftrace.event {
|
||||
task.task_newtask {
|
||||
filter = "pid < 128"
|
||||
enable
|
||||
}
|
||||
kprobes.vfs_read {
|
||||
probes = "vfs_read $arg1 $arg2"
|
||||
filter = "common_pid < 200"
|
||||
enable
|
||||
}
|
||||
synthetic.initcall_latency {
|
||||
fields = "unsigned long func", "u64 lat"
|
||||
actions = "hist:keys=func.sym,lat:vals=lat:sort=lat"
|
||||
}
|
||||
initcall.initcall_start {
|
||||
actions = "hist:keys=func:ts0=common_timestamp.usecs"
|
||||
}
|
||||
initcall.initcall_finish {
|
||||
actions = "hist:keys=func:lat=common_timestamp.usecs-$ts0:onmatch(initcall.initcall_start).initcall_latency(func,$lat)"
|
||||
}
|
||||
}'''
|
||||
d = {
|
||||
'ftrace': False,
|
||||
'ftrace.event': False,
|
||||
|
@ -60,9 +94,28 @@ def test_11():
|
|||
'ftrace.event.initcall.initcall_finish': False,
|
||||
'ftrace.event.initcall.initcall_finish.actions': "hist:keys=func:lat=common_timestamp.usecs-$ts0:onmatch(initcall.initcall_start).initcall_latency(func,$lat)"
|
||||
}
|
||||
assert load_xbc('tests/11-config.xbc') == d
|
||||
assert loads_xbc(i) == d
|
||||
|
||||
def test_12():
|
||||
i = '''ftrace.event.synthetic.initcall_latency {
|
||||
fields = "unsigned long func", "u64 lat"
|
||||
hist {
|
||||
from {
|
||||
event = initcall.initcall_start
|
||||
key = func
|
||||
assigns = "ts0=common_timestamp.usecs"
|
||||
}
|
||||
to {
|
||||
event = initcall.initcall_finish
|
||||
key = func
|
||||
assigns = "lat=common_timestamp.usecs-$ts0"
|
||||
onmatch = func, $lat
|
||||
}
|
||||
keys = func.sym, lat
|
||||
vals = lat
|
||||
sort = lat
|
||||
}
|
||||
}'''
|
||||
d = {
|
||||
'ftrace': False,
|
||||
'ftrace.event': False,
|
||||
|
@ -83,4 +136,4 @@ def test_12():
|
|||
'ftrace.event.synthetic.initcall_latency.hist.vals': 'lat',
|
||||
'ftrace.event.synthetic.initcall_latency.hist.sort': 'lat'
|
||||
}
|
||||
assert load_xbc('tests/12-config2.xbc') == d
|
||||
assert loads_xbc(i) == d
|
Loading…
Reference in New Issue