lc3spec 0.1.0 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/lc3spec/base.rb +10 -6
- data/lib/lc3spec/lc3.rb +5 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f686a8679caa7f3110190bb0ee425e509626c98
|
4
|
+
data.tar.gz: 53041547c4ec8e20cbd53723f8adbf9619bfd0be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd2f0ab0522bf867e8d9bff04160fb1a685ee06e958b26df5c6dd615bf3278c9fbc7ed46625ccafcb93829d1e377c9445b98e57461b1e20da4e670ac685afcaa
|
7
|
+
data.tar.gz: 9b2d49b370c77ef7753d84c5ead0bd047c1d7db968468a2f4584e29ceecbf84de4ee65e4b903655fec2ef05c866823a9a9d545dac4ca0dc52e173873878584d7
|
data/README.md
CHANGED
@@ -5,3 +5,9 @@ Testing and grading suite for LC-3 assembly programs
|
|
5
5
|
# Requirements
|
6
6
|
|
7
7
|
* [lc3tools for unix](http://highered.mcgraw-hill.com/sites/0072467509/student_view0/lc-3_simulator.html)
|
8
|
+
* Ruby 2.0 (Does not work with 1.8.7, untested with 1.9.*)
|
9
|
+
|
10
|
+
# Bugs
|
11
|
+
|
12
|
+
* Cannot load two files that have the same basename (e.g., foo/baz.asm and
|
13
|
+
bar/baz.asm)
|
data/lib/lc3spec/base.rb
CHANGED
@@ -22,6 +22,8 @@ module LC3Spec
|
|
22
22
|
|
23
23
|
# Do everything inside tmp_dir
|
24
24
|
Dir.mktmpdir('spec') do |tmp_dir|
|
25
|
+
@tmp_dir = tmp_dir
|
26
|
+
|
25
27
|
Dir.chdir(tmp_dir) do
|
26
28
|
@lc3 = LC3.new
|
27
29
|
|
@@ -63,9 +65,9 @@ module LC3Spec
|
|
63
65
|
end
|
64
66
|
|
65
67
|
def file(filename)
|
66
|
-
ensure_present(filename)
|
67
|
-
ensure_assembled(
|
68
|
-
@lc3.file(
|
68
|
+
basename = ensure_present(filename)
|
69
|
+
ensure_assembled(basename)
|
70
|
+
@lc3.file(basename)
|
69
71
|
|
70
72
|
self
|
71
73
|
end
|
@@ -152,12 +154,12 @@ module LC3Spec
|
|
152
154
|
|
153
155
|
if Dir.glob(basename + '*').empty?
|
154
156
|
if is_absolute_path?(filename)
|
155
|
-
Dir.glob(filename + '') do |fn|
|
156
|
-
FileUtils.cp(fn,
|
157
|
+
Dir.glob(filename + '*') do |fn|
|
158
|
+
FileUtils.cp(fn, @tmp_dir)
|
157
159
|
end
|
158
160
|
else
|
159
161
|
Dir.glob(File.join(@src_dir, filename + '*')) do |fn|
|
160
|
-
FileUtils.cp(fn,
|
162
|
+
FileUtils.cp(fn, @tmp_dir)
|
161
163
|
end
|
162
164
|
end
|
163
165
|
end
|
@@ -166,6 +168,8 @@ module LC3Spec
|
|
166
168
|
if Dir.glob(basename + '*').empty?
|
167
169
|
raise DoesNotAssembleError, "Cannot find file #{basename}"
|
168
170
|
end
|
171
|
+
|
172
|
+
basename
|
169
173
|
end
|
170
174
|
|
171
175
|
def ensure_assembled(filename)
|
data/lib/lc3spec/lc3.rb
CHANGED
@@ -17,8 +17,11 @@ class LC3
|
|
17
17
|
def initialize
|
18
18
|
# Logging
|
19
19
|
@logger = Logger.new(STDERR)
|
20
|
-
|
21
|
-
|
20
|
+
if ENV['LC3DEBUG']
|
21
|
+
@logger.level = Logger::DEBUG
|
22
|
+
else
|
23
|
+
@logger.level = Logger::ERROR
|
24
|
+
end
|
22
25
|
@logger.formatter = proc do |severity, datetime, progname, msg|
|
23
26
|
"#{severity}: #{msg}\n"
|
24
27
|
end
|