lc3spec 0.1.0 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|