• R/O
  • SSH

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2


Commit MetaInfo

Revisión2e3a2844f5d3181ca304fcf7e5b5aea9cd6b5c98 (tree)
Tiempo2023-01-29 02:29:07
AutorAlbert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

asis

Cambiar Resumen

Diferencia incremental

diff -r 07af448d3018 -r 2e3a2844f5d3 Makefile
--- a/Makefile Sat Jan 28 17:31:23 2023 +0100
+++ b/Makefile Sat Jan 28 18:29:07 2023 +0100
@@ -6,13 +6,20 @@
66
77 all: current demo test mutmut pyanalyse XXX missing
88
9+ToCS_dir = _ToCS-reports/
10+COVERAGE_dir = ${ToCS_dir}Coverage/
11+MUTMUT_dir = ${ToCS_dir}MutMut/
12+
913 missing: missing_visitor missing_serialization
1014
1115 PYTEST_OPTONS=-rxXsfE
1216 pytest test coverage:
1317 coverage run --branch -m pytest ${PYTEST_OPTONS} pytst/
1418 coverage report --skip-covered
15- coverage html
19+ coverage html --directory=${COVERAGE_dir}
20+coverage-open: coverage
21+ open ${COVERAGE_dir}index.html
22+
1623 pytest-only: # No coverage reports
1724 pytest ${PYTEST_OPTONS} pytst
1825 pytest-s: # -s : No capure (so, show stdout/stderr)
@@ -22,16 +29,16 @@
2229
2330 mutmut: mutmut-3.11 # Mutation testing (takes a long run) https://en.wikipedia.org/wiki/Mutation_testing
2431 -mutmut run --tests-dir pytst --paths-to-mutate castle
25- mutmut html && rm -rf mutmut-report ;mv html mutmut-report
32+ mutmut html && rm ${MUTMUT_dir} ; mv html ${MUTMUT_dir}
2633 mutmut results
34+mutmut-open: mutmut
35+ open ${MUTMUT_dir}index.html
2736
2837 mutmut-3.11:
2938 @echo Mutmut is currenly not working in python-3.11. See BUGS.rst.
3039 @echo But it works on 3.10 -- Therefore we use the 3.10 version
3140 python --version
3241
33-mutmut-open: mutmut
34- open mutmut-report/index.html
3542
3643
3744 current:
@@ -67,21 +74,8 @@
6774 XXX:
6875 grep XXX `find . -type f -name \*.py`
6976
70-clean: clean_caches
71-clean_caches:
72- find . -type d -name __pycache__ -print0 | xargs -0 rm -r
73- find . -type d -name .pytest_cache -print0 | xargs -0 rm -r
74- rm -f ./.coverage
75- rm -f ./.mutmut-cache
7677
77-cleaner: clean
78- rm -rf ./htmlcov/ #coverage
79- rm -rf mutmut-report/ # mutmut
80- rm -rf pyreversed/*
81-
82-cleanest veryclean: cleaner
83-
84-PYREVERSE_DIR=pyreversed
78+PYREVERSE_DIR=pyreversed/
8579 PYREVERSE_FORMAT=svg
8680 PYREVERSE_OPTIONS=-k -A -my
8781 PYREVERSE_PRJS= castle castle.readers castle.ast castle.writers.CC2Cpy
@@ -91,6 +85,20 @@
9185 echo "PYANALYSE::" $$P "...";\
9286 pyreverse -d ${PYREVERSE_DIR} -o ${PYREVERSE_FORMAT} ${PYREVERSE_OPTIONS} -p $$P --colorized --max-color-depth=42 -my $$P >>/dev/null;\
9387 echo ".. done. Result-files:" ;\
94- ls -l ${PYREVERSE_DIR}/*$${P}.${PYREVERSE_FORMAT} ;\
88+ ls -l ${PYREVERSE_DIR}*$${P}.${PYREVERSE_FORMAT} ;\
9589 echo;\
9690 done
91+
92+clean: clean_caches
93+clean_caches:
94+ find . -type d -name __pycache__ -print0 | xargs -0 rm -r
95+ find . -type d -name .pytest_cache -print0 | xargs -0 rm -r
96+ rm -f ./.coverage
97+ rm -f ./.mutmut-cache
98+
99+cleaner: clean
100+ rm -rf ${COVERAGE_dir}
101+ rm -rf ${MUTMUT_dir}
102+ rm -rf {PYREVERSE_DIR}*
103+
104+cleanest veryclean: cleaner
diff -r 07af448d3018 -r 2e3a2844f5d3 castle/writers/CC2Cpy/Protocol.py
--- a/castle/writers/CC2Cpy/Protocol.py Sat Jan 28 17:31:23 2023 +0100
+++ b/castle/writers/CC2Cpy/Protocol.py Sat Jan 28 18:29:07 2023 +0100
@@ -87,7 +87,7 @@
8787
8888 for n, e in enumerate(self.events, len(self.event_dict(inherired=True, mine=False))): # pragma: no mutate on event_dict parms
8989 lineval = []
90- lineval.append(f'{prepend}{indent*2}{{') # pragma: no mutate
90+ lineval.append(f'{prepend}{indent*2}{{') # XXXpragma: no mutate
9191 lineval.append(f' .seqNo = {n}, ')
9292 lineval.append(f' .name = "{e.name}", ')
9393 lineval.append(f' .part_of = &{var_name} ')
@@ -95,24 +95,25 @@
9595 # add line to retval
9696 retval.append("".join(lineval))
9797
98- retval.append(f'{prepend}{indent*2}}}') #end of events
99- retval.append(f'{prepend}}};\n') # end of struct
98+ retval.append(f'{prepend}{indent*2}}}') #end of events XXX Mutant 41
99+ retval.append(f'{prepend}}};\n') #end of struct
100100 return '\n'.join(retval) +"\n"
101101
102+ # XXX Mutant 45,46: default values prepend/indent
102103 def render_indexes(self, prepend:str="", indent=" ") ->str: ## #define CC_P_<proto>_<event> index
103104 ## For now, loop over the events here ...
104105 retval = []
105- for n, e in enumerate(self.events, len(self.event_dict(inherired=True,mine=False))):
106+ for n, e in enumerate(self.events, len(self.event_dict(inherired=True,mine=False))): # pragma: no mutate on event_dict parms
106107 retval.append(f'#define CC_P_{self.name}_{e.name}\t{n}\n')
107108 return '\n'.join(retval)+"\n"
108109
109-
110+ # XXX Mutant 53/53: default values prepend/indent
110111 def render_FTs(self, prepend:str="", indent=" ") ->str: ##typedef void (*CC_E_{...}_FT)(CC_selfType, CC_ComponentType, {...});
111112 type_name = lambda ptype : ptype if isinstance(ptype, str) else ptype.__name__
112113
113114 retval = []
114115 for e in self.events:
115- types =" , ".join(f'{type_name(parm.type)}' for parm in e.typedParameters)
116+ types =" , ".join(f'{type_name(parm.type)}' for parm in e.typedParameters) # pragma: no mutate on " , " befor join()
116117 retval.append( f'typedef void (*CC_E_{self.name}_{e.name}_FT)(CC_selfType, CC_ComponentType, {types});')
117118 return '\n'.join(retval)+"\n"
118119