summaryrefslogtreecommitdiffstats
path: root/docs/build_mantests.py
diff options
context:
space:
mode:
authoritchyny <itchyny@cybozu.co.jp>2023-07-18 08:17:21 +0900
committerGitHub <noreply@github.com>2023-07-18 08:17:21 +0900
commit9e4c71558aeeccc4c9c3ba4cd21451d9f3e047fc (patch)
treee7f23b744e9eca5be366d7460674c3db74d56680 /docs/build_mantests.py
parent4b3090a9abba3fa5b94a46c5f44944deec17d5d4 (diff)
Split man.test to make tests pass without oniguruma (#2722)
Diffstat (limited to 'docs/build_mantests.py')
-rwxr-xr-xdocs/build_mantests.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/docs/build_mantests.py b/docs/build_mantests.py
index 59736047..925e1448 100755
--- a/docs/build_mantests.py
+++ b/docs/build_mantests.py
@@ -1,13 +1,21 @@
#!/usr/bin/env python3
import yaml
+import re
-with open("content/manual/manual.yml") as f:
- manual = yaml.safe_load(f)
+regex_program_pattern = re.compile(
+ r'\b(?:test|match|capture|scan|split|splits|sub|gsub)\s*\(')
+
+with open('content/manual/manual.yml') as source, \
+ open('../tests/man.test', 'w') as man, \
+ open('../tests/manonig.test', 'w') as manonig:
+ manual = yaml.safe_load(source)
for section in manual.get('sections', []):
for entry in section.get('entries', []):
for example in entry.get('examples', []):
- print(example.get('program', '').replace('\n', ' '))
- print(example.get('input', ''))
+ program = example.get('program', '').replace('\n', ' ')
+ out = manonig if regex_program_pattern.search(program) else man
+ print(program, file=out)
+ print(example.get('input', ''), file=out)
for s in example.get('output', []):
- print(s)
- print('')
+ print(s, file=out)
+ print('', file=out)