Merge pull request #23 from catseye/develop-2023-1

Develop 2023 1
This commit is contained in:
Chris Pressey 2023-03-09 09:58:21 +00:00 committed by GitHub
commit d5e6eeacd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 50 additions and 31 deletions

View File

@ -1,27 +0,0 @@
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
version: 2
jobs:
build:
docker:
- image: circleci/python:3.6.1
working_directory: ~/SixtyPical
steps:
- checkout
- run:
name: install dependencies
command: |
echo "hi"
git clone https://github.com/catseye/Falderal
git clone https://github.com/catseye/dcc6502
(cd dcc6502 && make)
- run:
name: run tests
command: |
PATH=dcc6502:Falderal/bin:$PATH ./test.sh

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
*.pyc
__pycache__
vicerc

View File

@ -1,6 +1,14 @@
History of SixtyPical
=====================
0.21-2023.0309
--------------
* Python 3 is the default interpreter for `sixtypical`.
* Test appliance added for testing under Python 2.7.
* `dcc6502` test adapter made runnable under both
Python 2 and Python 3.
0.21
----

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
from os.path import realpath, dirname, join
import sys

View File

@ -2,6 +2,8 @@
# This currently represents a lot of tests! If you only want to run a subset,
# it's probably best to run `falderal` manually on the file(s) you want to test.
# Note also that the `sixtypical-py2.7.md` appliance, in the same directory as
# `sixtypical.md`, can be used to run the tests under Python 2.7.
falderal --substring-error \
"tests/appliances/sixtypical.md" \

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python2
#!/usr/bin/env python3
# script that allows the binary output of sixtypical --output-format=c64-basic-prg --compile to be
# disassembled by https://github.com/tcarmelveilleux/dcc6502
@ -8,7 +8,10 @@ import re
from subprocess import check_output
from tempfile import NamedTemporaryFile
bytes = sys.stdin.read()
try:
bytes = sys.stdin.buffer.read()
except AttributeError:
bytes = sys.stdin.read()
bytes = bytes[14:]
@ -17,6 +20,8 @@ filename = f.name
f.write(bytes)
f.close()
lines = [line for line in check_output("dcc6502 -o 2061 {}".format(filename), shell=True).split('\n') if line and not line.startswith(';')]
output = check_output("dcc6502 -o 2061 {}".format(filename), shell=True)
output_lines = output.decode('utf-8').split('\n')
lines = [line for line in output_lines if line and not line.startswith(';')]
lines = [re.sub(r'\s*\;.*$', '', line) for line in lines]
sys.stdout.write('\n'.join(lines))

View File

@ -0,0 +1,30 @@
This file contains only the [Falderal][] directives that define the different
functionalities tested by the test suite, assuming that it's the reference
implementation, `sixtypical`, that is going to implement these functionalities,
and additionally that `sixtypical` is running under Python 2.7.
NOTE that this is not well-supported anymore, given that Python 2.7 is past
end-of-life.
[Falderal]: http://catseye.tc/node/Falderal
-> Functionality "Check syntax of SixtyPical program" is implemented by
-> shell command "python2.7 bin/sixtypical --parse-only --traceback %(test-body-file) && echo ok"
-> Functionality "Analyze SixtyPical program" is implemented by
-> shell command "python2.7 bin/sixtypical --analyze-only --traceback %(test-body-file) && echo ok"
-> Functionality "Compile SixtyPical program" is implemented by
-> shell command "python2.7 bin/sixtypical --output-format=c64-basic-prg --traceback %(test-body-file) --output /tmp/foo && python2.7 tests/appliances/bin/dcc6502-adapter </tmp/foo"
-> Functionality "Dump callgraph info for SixtyPical program" is implemented by
-> shell command "python2.7 bin/sixtypical --dump-callgraph --analyze-only --traceback %(test-body-file)"
-> Functionality "Compile SixtyPical program with unreachable routine removal" is implemented by
-> shell command "python2.7 bin/sixtypical --output-format=c64-basic-prg --prune-unreachable-routines --traceback %(test-body-file) --output /tmp/foo && python2.7 tests/appliances/bin/dcc6502-adapter </tmp/foo"
-> Functionality "Dump fallthru info for SixtyPical program" is implemented by
-> shell command "python2.7 bin/sixtypical --optimize-fallthru --dump-fallthru-info --analyze-only --traceback %(test-body-file)"
-> Functionality "Compile SixtyPical program with fallthru optimization" is implemented by
-> shell command "python2.7 bin/sixtypical --output-format=c64-basic-prg --optimize-fallthru --traceback %(test-body-file) --output /tmp/foo && python2.7 tests/appliances/bin/dcc6502-adapter </tmp/foo"