Move tests into their projects.
This commit is contained in:
parent
2d7ce4a2de
commit
b4b237ec1f
81 changed files with 2 additions and 2 deletions
|
|
@ -1,246 +0,0 @@
|
|||
#!/usr/bin/env python3.9
|
||||
|
||||
|
||||
import asyncio
|
||||
import contextlib
|
||||
import io
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
os.environ["TERM"] = "xterm-256color"
|
||||
|
||||
import golden
|
||||
import eris.__main__ as __main__
|
||||
import fill3
|
||||
|
||||
|
||||
_DIMENSIONS = (100, 60)
|
||||
|
||||
|
||||
def _widget_to_string(widget, dimensions=_DIMENSIONS):
|
||||
appearance = (widget.appearance_min() if dimensions is None
|
||||
else widget.appearance(dimensions))
|
||||
return str(fill3.join("\n", appearance))
|
||||
|
||||
|
||||
def _touch(path):
|
||||
open(path, "w").close()
|
||||
|
||||
|
||||
def _assert_widget_appearance(widget, golden_path, dimensions=_DIMENSIONS):
|
||||
golden_path_absolute = os.path.join(os.path.dirname(__file__), golden_path)
|
||||
golden.assertGolden(_widget_to_string(widget, dimensions),
|
||||
golden_path_absolute)
|
||||
|
||||
|
||||
class _MockMainLoop:
|
||||
|
||||
def add_reader(self, foo, bar):
|
||||
pass
|
||||
|
||||
|
||||
class ScreenWidgetTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.temp_dir = tempfile.mkdtemp()
|
||||
project_dir = os.path.join(self.temp_dir, "project")
|
||||
os.mkdir(project_dir)
|
||||
foo_path = os.path.join(project_dir, "foo.py")
|
||||
_touch(foo_path)
|
||||
jobs_added_event = asyncio.Event()
|
||||
appearance_changed_event = asyncio.Event()
|
||||
summary = __main__.Summary(project_dir, jobs_added_event)
|
||||
log = __main__.Log(appearance_changed_event)
|
||||
self.main_widget = __main__.Screen(
|
||||
summary, log, appearance_changed_event, _MockMainLoop())
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.temp_dir)
|
||||
|
||||
def test_initial_appearance(self):
|
||||
_assert_widget_appearance(self.main_widget, "golden-files/initial")
|
||||
|
||||
def test_help_appearance(self):
|
||||
self.main_widget.toggle_help()
|
||||
_assert_widget_appearance(self.main_widget, "golden-files/help")
|
||||
|
||||
def test_log_appearance(self):
|
||||
log_shown = _widget_to_string(self.main_widget)
|
||||
self.main_widget.toggle_log()
|
||||
log_hidden = _widget_to_string(self.main_widget)
|
||||
actual = "shown:\n%s\nhidden:\n%s" % (log_shown, log_hidden)
|
||||
_assert_widget_appearance(self.main_widget, "golden-files/log")
|
||||
|
||||
def test_window_orientation(self):
|
||||
window_left_right = _widget_to_string(self.main_widget)
|
||||
self.main_widget.toggle_window_orientation()
|
||||
window_top_bottom = _widget_to_string(self.main_widget)
|
||||
actual = ("left-right:\n%s\ntop-bottom:\n%s" %
|
||||
(window_left_right, window_top_bottom))
|
||||
_assert_widget_appearance(self.main_widget,
|
||||
"golden-files/window-orientation")
|
||||
|
||||
|
||||
class SummaryCursorTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.original_method = __main__.Summary.sync_with_filesystem
|
||||
__main__.Summary.sync_with_filesystem = lambda foo: None
|
||||
self.summary = __main__.Summary(None, None)
|
||||
self.summary._entries = [[1, 1, 1], [1, 1], [1, 1, 1]]
|
||||
|
||||
def tearDown(self):
|
||||
__main__.Summary.sync_with_filesystem = self.original_method
|
||||
|
||||
def _assert_movements(self, movements):
|
||||
for movement, expected_position in movements:
|
||||
movement()
|
||||
self.assertEqual(self.summary.cursor_position(), expected_position)
|
||||
|
||||
def test_cursor_movement(self):
|
||||
self.assertEqual(self.summary.cursor_position(), (0, 0))
|
||||
self._assert_movements([(self.summary.cursor_right, (1, 0)),
|
||||
(self.summary.cursor_down, (1, 1)),
|
||||
(self.summary.cursor_left, (0, 1)),
|
||||
(self.summary.cursor_up, (0, 0))])
|
||||
|
||||
def test_cursor_wrapping(self):
|
||||
self._assert_movements([(self.summary.cursor_up, (0, 2)),
|
||||
(self.summary.cursor_down, (0, 0)),
|
||||
(self.summary.cursor_left, (2, 0)),
|
||||
(self.summary.cursor_right, (0, 0))])
|
||||
|
||||
def test_cursor_moving_between_different_sized_rows(self):
|
||||
self.summary._cursor_position = (2, 0)
|
||||
self._assert_movements([(self.summary.cursor_down, (1, 1)),
|
||||
(self.summary.cursor_down, (2, 2))])
|
||||
|
||||
|
||||
class SummarySyncWithFilesystemTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.temp_dir = tempfile.mkdtemp()
|
||||
self.foo_path = os.path.join(self.temp_dir, "foo")
|
||||
self.bar_path = os.path.join(self.temp_dir, "bar.md")
|
||||
self.zoo_path = os.path.join(self.temp_dir, "zoo.html")
|
||||
self.jobs_added_event = asyncio.Event()
|
||||
self.appearance_changed_event = asyncio.Event()
|
||||
self.summary = __main__.Summary(self.temp_dir, self.jobs_added_event)
|
||||
self.loop = asyncio.new_event_loop()
|
||||
callback = lambda event: __main__.on_filesystem_event(
|
||||
event, self.summary, self.temp_dir, self.appearance_changed_event)
|
||||
__main__.setup_inotify(self.temp_dir, self.loop, callback,
|
||||
__main__.is_path_excluded)
|
||||
_touch(self.foo_path)
|
||||
_touch(self.bar_path)
|
||||
self.log = __main__.Log(self.appearance_changed_event)
|
||||
self.loop.run_until_complete(self.summary.sync_with_filesystem(
|
||||
self.appearance_changed_event, self.log))
|
||||
self.jobs_added_event.clear()
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.temp_dir)
|
||||
|
||||
def _assert_paths(self, expected_paths):
|
||||
actual_paths = [entry[0].path for entry in self.summary._entries]
|
||||
self.assertEqual(set(actual_paths), set(expected_paths))
|
||||
|
||||
def _assert_summary_invariants(self):
|
||||
completed_total = 0
|
||||
result_total = 0
|
||||
for row in self.summary._entries:
|
||||
for result in row:
|
||||
if result.is_completed:
|
||||
completed_total += 1
|
||||
result_total += 1
|
||||
self.assertEqual(self.summary.completed_total, completed_total)
|
||||
self.assertEqual(self.summary.result_total, result_total)
|
||||
max_width = max((len(row) for row in self.summary._entries), default=0)
|
||||
self.assertEqual(__main__.Entry.MAX_WIDTH, max_width)
|
||||
max_path_length = max(
|
||||
(len(row.path) - 2 for row in self.summary._entries), default=0)
|
||||
self.assertEqual(self.summary._max_path_length, max_path_length)
|
||||
|
||||
def test_summary_initial_state(self):
|
||||
self._assert_summary_invariants()
|
||||
self._assert_paths(["./bar.md", "./foo"])
|
||||
self.assertFalse(self.jobs_added_event.is_set())
|
||||
|
||||
def test_sync_removed_file(self):
|
||||
async def foo():
|
||||
os.remove(self.bar_path)
|
||||
self.loop.run_until_complete(foo())
|
||||
self._assert_paths(["./foo"])
|
||||
self._assert_summary_invariants()
|
||||
self.assertFalse(self.jobs_added_event.is_set())
|
||||
|
||||
def test_sync_added_file(self):
|
||||
async def foo():
|
||||
_touch(self.zoo_path)
|
||||
self.loop.run_until_complete(foo())
|
||||
self._assert_paths(["./bar.md", "./foo", "./zoo.html"])
|
||||
self._assert_summary_invariants()
|
||||
self.assertTrue(self.jobs_added_event.is_set())
|
||||
|
||||
def test_sync_linked_files(self):
|
||||
"""Symbolic and hard-linked files are given distinct entry objects."""
|
||||
baz_path = os.path.join(self.temp_dir, "baz")
|
||||
os.symlink(self.foo_path, baz_path)
|
||||
os.link(self.foo_path, self.zoo_path)
|
||||
log = __main__.Log(self.appearance_changed_event)
|
||||
self.loop.run_until_complete(self.summary.sync_with_filesystem(
|
||||
self.appearance_changed_event, log))
|
||||
self._assert_paths(["./bar.md", "./baz", "./foo", "./zoo.html"])
|
||||
self.assertTrue(id(self.summary._entries[1]) != # baz
|
||||
id(self.summary._entries[2])) # foo
|
||||
self.assertTrue(id(self.summary._entries[2]) != # foo
|
||||
id(self.summary._entries[3])) # zoo
|
||||
self.assertTrue(self.jobs_added_event.is_set())
|
||||
|
||||
|
||||
def _mount_total():
|
||||
with open("/proc/mounts") as proc_mounts:
|
||||
return len(proc_mounts.readlines())
|
||||
|
||||
|
||||
def _tmp_total():
|
||||
return len(os.listdir("/tmp"))
|
||||
|
||||
|
||||
class MainTestCase(unittest.TestCase):
|
||||
|
||||
def test_main_and_restart_and_no_leaks_and_is_relocatable(self):
|
||||
def test_run(root_path, loop):
|
||||
mount_total = _mount_total()
|
||||
tmp_total = _tmp_total()
|
||||
foo_path = os.path.join(root_path, "foo")
|
||||
open(foo_path, "w").close()
|
||||
__main__.manage_cache(root_path)
|
||||
with __main__.chdir(root_path):
|
||||
with contextlib.redirect_stdout(io.StringIO()):
|
||||
__main__.main(root_path, loop, worker_count=2,
|
||||
is_being_tested=True)
|
||||
for file_name in ["summary.pickle", "creation_time",
|
||||
"foo-metadata", "foo-contents"]:
|
||||
self.assertTrue(os.path.exists(".eris/" + file_name))
|
||||
self.assertEqual(_mount_total(), mount_total)
|
||||
self.assertEqual(_tmp_total(), tmp_total)
|
||||
temp_dir = tempfile.mkdtemp()
|
||||
try:
|
||||
loop = asyncio.get_event_loop()
|
||||
first_dir = os.path.join(temp_dir, "first")
|
||||
os.mkdir(first_dir)
|
||||
test_run(first_dir, loop)
|
||||
second_dir = os.path.join(temp_dir, "second")
|
||||
os.rename(first_dir, second_dir)
|
||||
test_run(second_dir, loop)
|
||||
loop.close()
|
||||
loop.stop()
|
||||
finally:
|
||||
shutil.rmtree(temp_dir)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
golden.main()
|
||||
|
|
@ -1,133 +0,0 @@
|
|||
#!/usr/bin/env python3.9
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
import unittest
|
||||
|
||||
import fill3
|
||||
|
||||
|
||||
class WidgetTests(unittest.TestCase):
|
||||
|
||||
TEXT_A = fill3.Text("A")
|
||||
TEXT_B = fill3.Text("B")
|
||||
|
||||
def assert_string(self, appearance, expected_string):
|
||||
self.assertEqual(str(fill3.join("\n", appearance)), expected_string)
|
||||
|
||||
def test_rows_widget(self):
|
||||
rows = fill3.Row([self.TEXT_A, self.TEXT_B])
|
||||
self.assert_string(rows.appearance_min(), "AB")
|
||||
rows = fill3.Row([fill3.Filler(self.TEXT_A),
|
||||
fill3.Filler(self.TEXT_B)])
|
||||
self.assert_string(rows.appearance((4, 1)), "A B ")
|
||||
|
||||
def test_columns_widget(self):
|
||||
columns = fill3.Column([self.TEXT_A, self.TEXT_B])
|
||||
self.assert_string(columns.appearance_min(), "A\n"
|
||||
"B")
|
||||
|
||||
def test_text_widget(self):
|
||||
self.assert_string(self.TEXT_A.appearance_min(), "A")
|
||||
text = "foo\nbar"
|
||||
self.assert_string(fill3.Text(text).appearance_min(), "foo\n"
|
||||
"bar")
|
||||
|
||||
def test_portal_widget(self):
|
||||
row = fill3.Row([fill3.Text("foo"), fill3.Text("bar")])
|
||||
portal = fill3.Portal(row, (1, 0))
|
||||
self.assert_string(portal.appearance((5, 1)), "oobar")
|
||||
portal.position = (0, 10)
|
||||
self.assert_string(portal.appearance((1, 1)), " ")
|
||||
|
||||
def test_border_widget(self):
|
||||
contents = fill3.Filler(self.TEXT_A)
|
||||
self.assert_string(fill3.Border(contents).appearance((3, 3)), "┌─┐\n"
|
||||
"│A│\n"
|
||||
"└─┘")
|
||||
for empty_contents in [fill3.Filler(fill3.Text("")), fill3.Column([])]:
|
||||
self.assert_string(fill3.Border(empty_contents).appearance((2, 2)),
|
||||
"┌┐\n"
|
||||
"└┘")
|
||||
self.assert_string(fill3.Border(fill3.Column([])).appearance_min(),
|
||||
"┌┐\n"
|
||||
"└┘")
|
||||
self.assert_string(fill3.Border(empty_contents).appearance((3, 3)),
|
||||
"┌─┐\n"
|
||||
"│ │\n"
|
||||
"└─┘")
|
||||
text = fill3.Text("abcdef")
|
||||
self.assert_string(fill3.Border(text, title="AB").appearance((8, 3)),
|
||||
"┌─ AB ─┐\n"
|
||||
"│abcdef│\n"
|
||||
"└──────┘")
|
||||
self.assert_string(fill3.Border(text, title="ABC").appearance((6, 3)),
|
||||
"┌ …C ┐\n"
|
||||
"│abcd│\n"
|
||||
"└────┘")
|
||||
|
||||
def test_placeholder_widget(self):
|
||||
placeholder = fill3.Placeholder(self.TEXT_A)
|
||||
self.assert_string(placeholder.appearance_min(), "A")
|
||||
placeholder.widget = self.TEXT_B
|
||||
self.assert_string(placeholder.appearance_min(), "B")
|
||||
|
||||
def assert_string2(self, appearance, expected_string):
|
||||
self.assertEqual(
|
||||
("\n".join(line.data for line in appearance),
|
||||
"".join("i" if style.fg_color ==
|
||||
fill3.ScrollBar.DEFAULT_BACKGROUND_COLOR else " "
|
||||
for line in appearance for style in line.style)),
|
||||
expected_string)
|
||||
|
||||
def test_scroll_bar(self):
|
||||
scroll_bar = fill3.ScrollBar(is_horizontal=True)
|
||||
self.assertEqual(scroll_bar.interval, (0, 0))
|
||||
self.assert_string2(scroll_bar.appearance((1, 1)), (" ", "i"))
|
||||
scroll_bar.interval = (0, 0.5)
|
||||
self.assert_string2(scroll_bar.appearance((2, 1)), (" ", "i "))
|
||||
scroll_bar.interval = (0, 0.1)
|
||||
self.assert_string2(scroll_bar.appearance((2, 1)), (" ", "i "))
|
||||
scroll_bar.interval = (0.25, 0.75)
|
||||
self.assert_string2(scroll_bar.appearance((4, 1)), (" █ ", " i "))
|
||||
scroll_bar.interval = (0, 0.75)
|
||||
self.assert_string2(scroll_bar.appearance((2, 1)), (" ▌", "i "))
|
||||
|
||||
scroll_bar = fill3.ScrollBar(is_horizontal=False)
|
||||
self.assertEqual(scroll_bar.interval, (0, 0))
|
||||
self.assert_string2(scroll_bar.appearance((1, 1)), ("█", " "))
|
||||
scroll_bar.interval = (0, 0.5)
|
||||
self.assert_string2(scroll_bar.appearance((1, 2)), ("█\n"
|
||||
"█", " i"))
|
||||
scroll_bar.interval = (0, 0.1)
|
||||
self.assert_string2(scroll_bar.appearance((1, 2)), ("█\n"
|
||||
"█", " i"))
|
||||
scroll_bar.interval = (0.25, 0.75)
|
||||
self.assert_string2(scroll_bar.appearance((1, 4)), (" \n"
|
||||
"█\n"
|
||||
"█\n"
|
||||
"█", " i"))
|
||||
scroll_bar.interval = (0, 0.75)
|
||||
self.assert_string2(scroll_bar.appearance((1, 2)), ("█\n"
|
||||
"▄", " i"))
|
||||
|
||||
def test_table_widget(self):
|
||||
table = fill3.Table([])
|
||||
self.assert_string(table.appearance_min(), "")
|
||||
table = fill3.Table([[self.TEXT_A]])
|
||||
self.assert_string(table.appearance_min(), "A")
|
||||
table = fill3.Table([[self.TEXT_A, self.TEXT_B]])
|
||||
self.assert_string(table.appearance_min(), "AB")
|
||||
table = fill3.Table([[self.TEXT_A, self.TEXT_B],
|
||||
[self.TEXT_B, self.TEXT_A]])
|
||||
self.assert_string(table.appearance_min(), "AB\n"
|
||||
"BA")
|
||||
label_foo = fill3.Text("FOO")
|
||||
table = fill3.Table([[label_foo, self.TEXT_B],
|
||||
[self.TEXT_B, self.TEXT_A]])
|
||||
self.assert_string(table.appearance_min(), "FOOB\n"
|
||||
"B A")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
[m[38;2;255;255;255m[48;2;0;0;0m┌────────────────────────────────────────────── Help ──────────────────────────────────────────────┐
|
||||
│Eris Codebase Monitor │
|
||||
│ │
|
||||
│Eris maintains an up-to-date set of reports for every file in a codebase. │
|
||||
│ │
|
||||
│A status indicator summarises the state of each report, and a report is viewed │
|
||||
│by selecting this status indicator with the cursor. │
|
||||
│ │
|
||||
│The reports are cached in the codebase's root directory in a ".eris" │
|
||||
│directory. │
|
||||
│ │
|
||||
│Keys: │
|
||||
│ arrow keys, page up/down, mouse - Move the cursor or scroll the result pane. │
|
||||
│ tab - Change the focus between summary and result pane. │
|
||||
│ q, esc - Quit. │
|
||||
│ h - Show the help screen. (toggle) │
|
||||
│ t - Turn the result pane to portrait or landscape. (toggle) │
|
||||
│ l - Show the activity log. (toggle) │
|
||||
│ e - Edit the current file with an editor defined by -e, $EDITOR or $VISUAL. │
|
||||
│ n - Move to the next issue. │
|
||||
│ N - Move to the next issue of the current tool. │
|
||||
│ s - Sort files by type, or by directory location. (toggle) │
|
||||
│ r - Refresh the currently selected report. │
|
||||
│ R - Refresh all reports of the current tool. │
|
||||
│ f - Resize the focused pane to the full screen. (toggle) │
|
||||
│ o - Open the current file with xdg-open. │
|
||||
│ │
|
||||
│Statuses: │
|
||||
│ [m[38;2;255;255;255m[48;2;0;159;107m [m[38;2;255;255;255m[48;2;0;0;0m Ok │
|
||||
│ [m[38;2;255;255;255m[48;2;0;119;80m [m[38;2;255;255;255m[48;2;0;0;0m Problem │
|
||||
│ [m[38;2;255;255;255m[48;2;80;80;80m [m[38;2;255;255;255m[48;2;0;0;0m Not applicable │
|
||||
│ [m[38;2;255;255;255m[48;2;0;255;0m [m[38;2;255;255;255m[48;2;0;0;0m Running │
|
||||
│ [m[38;2;255;255;255m[48;2;200;0;200m [m[38;2;255;255;255m[48;2;0;0;0m Timed out │
|
||||
│ [m[38;2;100;100;100m[48;2;0;0;0m.[m[38;2;255;255;255m[48;2;0;0;0m Pending │
|
||||
│ [m[38;2;255;255;255m[48;2;196;2;51m [m[38;2;255;255;255m[48;2;0;0;0m Error │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
[m[38;2;255;255;255m[48;2;76;76;76m [m[38;2;76;255;76m[48;2;76;76;76mh[m[38;2;255;255;255m[48;2;76;76;76melp [m[38;2;76;255;76m[48;2;76;76;76mq[m[38;2;255;255;255m[48;2;76;76;76muit [m[38;2;76;255;76m[48;2;76;76;76mtab[m[38;2;255;255;255m[48;2;76;76;76m:focus [m[38;2;76;255;76m[48;2;76;76;76mt[m[38;2;255;255;255m[48;2;76;76;76murn [m[38;2;76;255;76m[48;2;76;76;76ml[m[38;2;255;255;255m[48;2;76;76;76mog [m[38;2;76;255;76m[48;2;76;76;76me[m[38;2;255;255;255m[48;2;76;76;76mdit [m[38;2;76;255;76m[48;2;76;76;76mn[m[38;2;255;255;255m[48;2;76;76;76mext [m[38;2;76;255;76m[48;2;76;76;76ms[m[38;2;255;255;255m[48;2;76;76;76mort [m[38;2;76;255;76m[48;2;76;76;76mr[m[38;2;255;255;255m[48;2;76;76;76mefresh [m[38;2;76;255;76m[48;2;76;76;76mf[m[38;2;255;255;255m[48;2;76;76;76mullscreen [m[38;2;76;255;76m[48;2;76;76;76mo[m[38;2;255;255;255m[48;2;76;76;76mpen [m
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
[m[38;2;255;255;255m[48;2;0;0;0m┏━━━━━━━━ Summary of project ━━━━━━━━┓[m[38;2;100;100;100m[48;2;0;0;0m┌────────────────────────────────────────────────────────────┐[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0mNothing selected [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m┌───────────────[m[38;2;255;255;255m[48;2;0;0;0m Log [m[38;2;100;100;100m[48;2;0;0;0m────────────────┐│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m││[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m└────────────────────────────────────┘└────────────────────────────────────────────────────────────┘[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;255;255;255m[48;2;76;76;76m [m[38;2;76;255;76m[48;2;76;76;76mh[m[38;2;255;255;255m[48;2;76;76;76melp [m[38;2;76;255;76m[48;2;76;76;76mq[m[38;2;255;255;255m[48;2;76;76;76muit [m[38;2;76;255;76m[48;2;76;76;76mtab[m[38;2;255;255;255m[48;2;76;76;76m:focus [m[38;2;76;255;76m[48;2;76;76;76mt[m[38;2;255;255;255m[48;2;76;76;76murn [m[38;2;76;255;76m[48;2;76;76;76ml[m[38;2;255;255;255m[48;2;76;76;76mog [m[38;2;76;255;76m[48;2;76;76;76me[m[38;2;255;255;255m[48;2;76;76;76mdit [m[38;2;76;255;76m[48;2;76;76;76mn[m[38;2;255;255;255m[48;2;76;76;76mext [m[38;2;76;255;76m[48;2;76;76;76ms[m[38;2;255;255;255m[48;2;76;76;76mort [m[38;2;76;255;76m[48;2;76;76;76mr[m[38;2;255;255;255m[48;2;76;76;76mefresh [m[38;2;76;255;76m[48;2;76;76;76mf[m[38;2;255;255;255m[48;2;76;76;76mullscreen [m[38;2;76;255;76m[48;2;76;76;76mo[m[38;2;255;255;255m[48;2;76;76;76mpen [m
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 108 B |
Binary file not shown.
|
Before Width: | Height: | Size: 381 B |
Binary file not shown.
|
Before Width: | Height: | Size: 320 B |
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 1 KiB |
Binary file not shown.
|
|
@ -1,197 +0,0 @@
|
|||
/**
|
||||
* Copyright (c) Rich Hickey. All rights reserved.
|
||||
* The use and distribution terms for this software are covered by the
|
||||
* Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
|
||||
* which can be found in the file epl-v10.html at the root of this distribution.
|
||||
* By using this software in any fashion, you are agreeing to be bound by
|
||||
* the terms of this license.
|
||||
* You must not remove this notice, or any other, from this software.
|
||||
**/
|
||||
|
||||
/* rich Apr 19, 2008 */
|
||||
|
||||
package clojure.lang;
|
||||
|
||||
import java.lang.ref.Reference;
|
||||
import java.math.BigInteger;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.lang.ref.SoftReference;
|
||||
import java.lang.ref.ReferenceQueue;
|
||||
|
||||
public class Util{
|
||||
static public boolean equiv(Object k1, Object k2){
|
||||
if(k1 == k2)
|
||||
return true;
|
||||
if(k1 != null)
|
||||
{
|
||||
if(k1 instanceof Number && k2 instanceof Number)
|
||||
return Numbers.equal((Number)k1, (Number)k2);
|
||||
else if(k1 instanceof IPersistentCollection || k2 instanceof IPersistentCollection)
|
||||
return pcequiv(k1,k2);
|
||||
return k1.equals(k2);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static public boolean equiv(long k1, long k2){
|
||||
return k1 == k2;
|
||||
}
|
||||
|
||||
static public boolean equiv(Object k1, long k2){
|
||||
return equiv(k1, (Object)k2);
|
||||
}
|
||||
|
||||
static public boolean equiv(long k1, Object k2){
|
||||
return equiv((Object)k1, k2);
|
||||
}
|
||||
|
||||
static public boolean equiv(double k1, double k2){
|
||||
return k1 == k2;
|
||||
}
|
||||
|
||||
static public boolean equiv(Object k1, double k2){
|
||||
return equiv(k1, (Object)k2);
|
||||
}
|
||||
|
||||
static public boolean equiv(double k1, Object k2){
|
||||
return equiv((Object)k1, k2);
|
||||
}
|
||||
|
||||
static public boolean equiv(boolean k1, boolean k2){
|
||||
return k1 == k2;
|
||||
}
|
||||
|
||||
static public boolean equiv(Object k1, boolean k2){
|
||||
return equiv(k1, (Object)k2);
|
||||
}
|
||||
|
||||
static public boolean equiv(boolean k1, Object k2){
|
||||
return equiv((Object)k1, k2);
|
||||
}
|
||||
|
||||
static public boolean equiv(char c1, char c2) {
|
||||
return c1 == c2;
|
||||
}
|
||||
|
||||
static public boolean pcequiv(Object k1, Object k2){
|
||||
if(k1 instanceof IPersistentCollection)
|
||||
return ((IPersistentCollection)k1).equiv(k2);
|
||||
return ((IPersistentCollection)k2).equiv(k1);
|
||||
}
|
||||
|
||||
static public boolean equals(Object k1, Object k2){
|
||||
if(k1 == k2)
|
||||
return true;
|
||||
return k1 != null && k1.equals(k2);
|
||||
}
|
||||
|
||||
static public boolean identical(Object k1, Object k2){
|
||||
return k1 == k2;
|
||||
}
|
||||
|
||||
static public Class classOf(Object x){
|
||||
if(x != null)
|
||||
return x.getClass();
|
||||
return null;
|
||||
}
|
||||
|
||||
static public int compare(Object k1, Object k2){
|
||||
if(k1 == k2)
|
||||
return 0;
|
||||
if(k1 != null)
|
||||
{
|
||||
if(k2 == null)
|
||||
return 1;
|
||||
if(k1 instanceof Number)
|
||||
return Numbers.compare((Number) k1, (Number) k2);
|
||||
return ((Comparable) k1).compareTo(k2);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static public int hash(Object o){
|
||||
if(o == null)
|
||||
return 0;
|
||||
return o.hashCode();
|
||||
}
|
||||
|
||||
static public int hasheq(Object o){
|
||||
if(o == null)
|
||||
return 0;
|
||||
if(o instanceof Number)
|
||||
return Numbers.hasheq((Number)o);
|
||||
else if(o instanceof IHashEq)
|
||||
return ((IHashEq)o).hasheq();
|
||||
return o.hashCode();
|
||||
}
|
||||
|
||||
static public int hashCombine(int seed, int hash){
|
||||
//a la boost
|
||||
seed ^= hash + 0x9e3779b9 + (seed << 6) + (seed >> 2);
|
||||
return seed;
|
||||
}
|
||||
|
||||
static public boolean isPrimitive(Class c){
|
||||
return c != null && c.isPrimitive() && !(c == Void.TYPE);
|
||||
}
|
||||
|
||||
static public boolean isInteger(Object x){
|
||||
return x instanceof Integer
|
||||
|| x instanceof Long
|
||||
|| x instanceof BigInt
|
||||
|| x instanceof BigInteger;
|
||||
}
|
||||
|
||||
static public Object ret1(Object ret, Object nil){
|
||||
return ret;
|
||||
}
|
||||
|
||||
static public ISeq ret1(ISeq ret, Object nil){
|
||||
return ret;
|
||||
}
|
||||
|
||||
static public <K,V> void clearCache(ReferenceQueue rq, ConcurrentHashMap<K, Reference<V>> cache){
|
||||
//cleanup any dead entries
|
||||
if(rq.poll() != null)
|
||||
{
|
||||
while(rq.poll() != null)
|
||||
;
|
||||
for(Map.Entry<K, Reference<V>> e : cache.entrySet())
|
||||
{
|
||||
Reference<V> val = e.getValue();
|
||||
if(val != null && val.get() == null)
|
||||
cache.remove(e.getKey(), val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static public RuntimeException runtimeException(String s){
|
||||
return new RuntimeException(s);
|
||||
}
|
||||
|
||||
static public RuntimeException runtimeException(String s, Throwable e){
|
||||
return new RuntimeException(s, e);
|
||||
}
|
||||
|
||||
/**
|
||||
* Throw even checked exceptions without being required
|
||||
* to declare them or catch them. Suggested idiom:
|
||||
* <p>
|
||||
* <code>throw sneakyThrow( some exception );</code>
|
||||
*/
|
||||
static public RuntimeException sneakyThrow(Throwable t) {
|
||||
// http://www.mail-archive.com/javaposse@googlegroups.com/msg05984.html
|
||||
if (t == null)
|
||||
throw new NullPointerException();
|
||||
Util.<RuntimeException>sneakyThrow0(t);
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
static private <T extends Throwable> void sneakyThrow0(Throwable t) throws T {
|
||||
throw (T) t;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("Hello World\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
cout << "Hello World" << endl;
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
#ifndef HELLO_H
|
||||
#define HELLO_H
|
||||
|
||||
void hello();
|
||||
|
||||
#endif
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
<html>
|
||||
<head></head>
|
||||
<body>hello</body>
|
||||
</html>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,4 +0,0 @@
|
|||
|
||||
|
||||
def hi():
|
||||
print("hi")
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
|
||||
|
||||
import unittest
|
||||
|
||||
import hi3
|
||||
|
||||
|
||||
class HiTestCase(unittest.TestCase):
|
||||
|
||||
def test_hi(self):
|
||||
hi3.hi()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
|
||||
|
||||
import unittest
|
||||
|
||||
import hi
|
||||
|
||||
|
||||
class HiTestCase(unittest.TestCase):
|
||||
|
||||
def test_hi(self):
|
||||
hi.hi()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,2 +0,0 @@
|
|||
#!/usr/bin/perl
|
||||
print "Hello, world!\n";
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<?php
|
||||
////////////////////////////////////
|
||||
// I am not Isabelle ROOT //
|
||||
////////////////////////////////////
|
||||
|
||||
?>
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,4 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
|
||||
print("tested foo")
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
[m[38;2;255;255;255m[48;2;0;0;0m┏━━━━━━━━ Summary of project ━━━━━━━━┓[m[38;2;100;100;100m[48;2;0;0;0m┌────────────────────────────────────────────────────────────┐[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0mNothing selected [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[m[38;2;100;100;100m[48;2;0;0;0m└────────────────────────────────────────────────────────────┘[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;255;255;255m[48;2;76;76;76m [m[38;2;76;255;76m[48;2;76;76;76mh[m[38;2;255;255;255m[48;2;76;76;76melp [m[38;2;76;255;76m[48;2;76;76;76mq[m[38;2;255;255;255m[48;2;76;76;76muit [m[38;2;76;255;76m[48;2;76;76;76mtab[m[38;2;255;255;255m[48;2;76;76;76m:focus [m[38;2;76;255;76m[48;2;76;76;76mt[m[38;2;255;255;255m[48;2;76;76;76murn [m[38;2;76;255;76m[48;2;76;76;76ml[m[38;2;255;255;255m[48;2;76;76;76mog [m[38;2;76;255;76m[48;2;76;76;76me[m[38;2;255;255;255m[48;2;76;76;76mdit [m[38;2;76;255;76m[48;2;76;76;76mn[m[38;2;255;255;255m[48;2;76;76;76mext [m[38;2;76;255;76m[48;2;76;76;76ms[m[38;2;255;255;255m[48;2;76;76;76mort [m[38;2;76;255;76m[48;2;76;76;76mr[m[38;2;255;255;255m[48;2;76;76;76mefresh [m[38;2;76;255;76m[48;2;76;76;76mf[m[38;2;255;255;255m[48;2;76;76;76mullscreen [m[38;2;76;255;76m[48;2;76;76;76mo[m[38;2;255;255;255m[48;2;76;76;76mpen [m
|
||||
|
|
@ -1 +0,0 @@
|
|||
Verification completed: 0 reported messages
|
||||
|
|
@ -1 +0,0 @@
|
|||
[m
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[m[38;2;255;255;255m[48;2;32;32;32m [m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;255;255;255m[48;2;32;32;32m [m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;106;184;37m[48;2;32;32;32m[1mdef[m[38;2;208;208;208m[48;2;32;32;32m [m[38;2;68;127;207m[48;2;32;32;32mhi[m[38;2;208;208;208m[48;2;32;32;32m():[m[38;2;255;255;255m[48;2;32;32;32m [m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;208;208;208m[48;2;32;32;32m [m[38;2;36;144;157m[48;2;32;32;32mprint[m[38;2;208;208;208m[48;2;32;32;32m([m[38;2;237;157;19m[48;2;32;32;32m"hi"[m[38;2;208;208;208m[48;2;32;32;32m)[m
|
||||
|
|
@ -1 +0,0 @@
|
|||
[m
|
||||
|
|
@ -1 +0,0 @@
|
|||
hello
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
|
||||
line 2 column 3 - Warning: inserting missing 'title' element
|
||||
Info: Document content looks like HTML5
|
||||
Tidy found 2 warnings and 0 errors!
|
||||
|
||||
|
||||
About HTML Tidy: https://github.com/htacg/tidy-html5
|
||||
Bug reports and comments: https://github.com/htacg/tidy-html5/issues
|
||||
Official mailing list: https://lists.w3.org/Archives/Public/public-htacg/
|
||||
Latest HTML specification: http://dev.w3.org/html5/spec-author-view/
|
||||
Validate your HTML documents: http://validator.w3.org/nu/
|
||||
Lobby your company to join the W3C: http://www.w3.org/Consortium
|
||||
|
||||
Do you speak a language other than English, or a different variant of
|
||||
English? Consider helping us to localize HTML Tidy. For details please see
|
||||
https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md
|
||||
|
|
@ -1 +0,0 @@
|
|||
Verification completed: 0 reported messages.
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
[m[38;2;0;135;189m[48;2;0;0;0msize:[m[38;2;255;255;255m[48;2;0;0;0m 12.0 B[m[38;2;100;100;100m[48;2;0;0;0m (12 bytes)[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;135;189m[48;2;0;0;0mpermissions:[m[38;2;255;255;255m[48;2;0;0;0m ?rwxr-xr-x[m[38;2;100;100;100m[48;2;0;0;0m (755)[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
|
||||
[m[38;2;0;135;189m[48;2;0;0;0mmodified time:[m[38;2;255;255;255m[48;2;0;0;0m Sun Jan 31 23:14:05 2016[m[38;2;100;100;100m[48;2;0;0;0m (1454282045 secs)[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;135;189m[48;2;0;0;0mcreation time:[m[38;2;255;255;255m[48;2;0;0;0m Sun Jan 31 23:14:05 2016[m[38;2;100;100;100m[48;2;0;0;0m (1454282045 secs)[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;135;189m[48;2;0;0;0maccess time:[m[38;2;255;255;255m[48;2;0;0;0m Sun Jan 31 23:14:07 2016[m[38;2;100;100;100m[48;2;0;0;0m (1454282047 secs)[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
|
||||
[m[38;2;0;135;189m[48;2;0;0;0mowner:[m[38;2;255;255;255m[48;2;0;0;0m foo[m[38;2;100;100;100m[48;2;0;0;0m (1111 uid)[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;135;189m[48;2;0;0;0mgroup:[m[38;2;255;255;255m[48;2;0;0;0m foo[m[38;2;100;100;100m[48;2;0;0;0m (1111 gid)[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
|
||||
[m[38;2;0;135;189m[48;2;0;0;0mhardlinks:[m[38;2;255;255;255m[48;2;0;0;0m 2
|
||||
[m[38;2;0;135;189m[48;2;0;0;0msymlink:[m[38;2;255;255;255m[48;2;0;0;0m no
|
||||
|
||||
[m[38;2;0;135;189m[48;2;0;0;0mmime type:[m[38;2;255;255;255m[48;2;0;0;0m text/x-script.python; charset=us-ascii
|
||||
[m[38;2;0;135;189m[48;2;0;0;0mfile type:[m[38;2;255;255;255m[48;2;0;0;0m Python script, ASCII text executable
|
||||
[m
|
||||
|
|
@ -1 +0,0 @@
|
|||
Success: no issues found in 1 source file
|
||||
|
|
@ -1 +0,0 @@
|
|||
00000000 D _LIB_VERSION
|
||||
|
|
@ -1 +0,0 @@
|
|||
nm: ./input/libpcprofile.so: no symbols
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
|
||||
./input/rotatingtree.o: file format elf64-x86-64
|
||||
|
||||
objdump: ./input/rotatingtree.o: not a dynamic object
|
||||
objdump: ./input/rotatingtree.o: invalid operation
|
||||
|
|
@ -1,290 +0,0 @@
|
|||
|
||||
./input/rotatingtree.o: file format elf64-x86-64
|
||||
./input/rotatingtree.o
|
||||
architecture: i386:x86-64, flags 0x00000011:
|
||||
HAS_RELOC, HAS_SYMS
|
||||
start address 0x0000000000000000
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn
|
||||
0 .text 000003b7 0000000000000000 0000000000000000 00000040 2**4
|
||||
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
|
||||
1 .data 00000004 0000000000000000 0000000000000000 000003f8 2**2
|
||||
CONTENTS, ALLOC, LOAD, DATA
|
||||
2 .bss 00000004 0000000000000000 0000000000000000 000003fc 2**2
|
||||
ALLOC
|
||||
3 .debug_info 00000747 0000000000000000 0000000000000000 000003fc 2**0
|
||||
CONTENTS, RELOC, READONLY, DEBUGGING, OCTETS
|
||||
4 .debug_abbrev 00000232 0000000000000000 0000000000000000 00000b43 2**0
|
||||
CONTENTS, READONLY, DEBUGGING, OCTETS
|
||||
5 .debug_loclists 00000454 0000000000000000 0000000000000000 00000d75 2**0
|
||||
CONTENTS, READONLY, DEBUGGING, OCTETS
|
||||
6 .debug_aranges 00000030 0000000000000000 0000000000000000 000011c9 2**0
|
||||
CONTENTS, RELOC, READONLY, DEBUGGING, OCTETS
|
||||
7 .debug_rnglists 0000001f 0000000000000000 0000000000000000 000011f9 2**0
|
||||
CONTENTS, READONLY, DEBUGGING, OCTETS
|
||||
8 .debug_line 00000420 0000000000000000 0000000000000000 00001218 2**0
|
||||
CONTENTS, RELOC, READONLY, DEBUGGING, OCTETS
|
||||
9 .debug_str 0000021b 0000000000000000 0000000000000000 00001638 2**0
|
||||
CONTENTS, READONLY, DEBUGGING, OCTETS
|
||||
10 .debug_line_str 000000e0 0000000000000000 0000000000000000 00001853 2**0
|
||||
CONTENTS, READONLY, DEBUGGING, OCTETS
|
||||
11 .comment 00000026 0000000000000000 0000000000000000 00001933 2**0
|
||||
CONTENTS, READONLY
|
||||
12 .note.GNU-stack 00000000 0000000000000000 0000000000000000 00001959 2**0
|
||||
CONTENTS, READONLY
|
||||
13 .note.gnu.property 00000020 0000000000000000 0000000000000000 00001960 2**3
|
||||
CONTENTS, ALLOC, LOAD, READONLY, DATA
|
||||
14 .eh_frame 00000090 0000000000000000 0000000000000000 00001980 2**3
|
||||
CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l df *ABS* 0000000000000000 rotatingtree.c
|
||||
0000000000000000 l d .text 0000000000000000 .text
|
||||
0000000000000000 l d .data 0000000000000000 .data
|
||||
0000000000000000 l d .bss 0000000000000000 .bss
|
||||
0000000000000000 l O .bss 0000000000000004 random_stream
|
||||
0000000000000000 l O .data 0000000000000004 random_value
|
||||
0000000000000000 l d .debug_info 0000000000000000 .debug_info
|
||||
0000000000000000 l d .debug_abbrev 0000000000000000 .debug_abbrev
|
||||
0000000000000000 l d .debug_loclists 0000000000000000 .debug_loclists
|
||||
0000000000000000 l d .debug_rnglists 0000000000000000 .debug_rnglists
|
||||
0000000000000000 l d .debug_line 0000000000000000 .debug_line
|
||||
0000000000000000 l d .debug_str 0000000000000000 .debug_str
|
||||
0000000000000000 l d .debug_line_str 0000000000000000 .debug_line_str
|
||||
0000000000000000 g F .text 0000000000000033 .hidden RotatingTree_Add
|
||||
0000000000000040 g F .text 000000000000014c .hidden RotatingTree_Get
|
||||
0000000000000190 g F .text 0000000000000227 .hidden RotatingTree_Enum
|
||||
|
||||
|
||||
RELOCATION RECORDS FOR [.text]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000046 R_X86_64_PC32 .bss-0x0000000000000004
|
||||
0000000000000054 R_X86_64_PC32 .data-0x0000000000000008
|
||||
000000000000005e R_X86_64_PC32 .data-0x0000000000000004
|
||||
000000000000006f R_X86_64_PC32 .bss-0x0000000000000004
|
||||
00000000000000aa R_X86_64_PC32 .bss-0x0000000000000004
|
||||
00000000000000b6 R_X86_64_PC32 .data-0x0000000000000004
|
||||
00000000000000d0 R_X86_64_PC32 .data-0x0000000000000004
|
||||
0000000000000159 R_X86_64_PC32 .bss-0x0000000000000004
|
||||
0000000000000169 R_X86_64_PC32 .data-0x0000000000000004
|
||||
000000000000024a R_X86_64_PLT32 RotatingTree_Enum-0x0000000000000004
|
||||
|
||||
|
||||
RELOCATION RECORDS FOR [.debug_info]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000008 R_X86_64_32 .debug_abbrev
|
||||
000000000000000d R_X86_64_32 .debug_str
|
||||
0000000000000012 R_X86_64_32 .debug_line_str
|
||||
0000000000000016 R_X86_64_32 .debug_line_str+0x0000000000000033
|
||||
000000000000001a R_X86_64_64 .text
|
||||
000000000000002a R_X86_64_32 .debug_line
|
||||
0000000000000031 R_X86_64_32 .debug_str+0x000000000000016f
|
||||
000000000000003f R_X86_64_32 .debug_str+0x00000000000001f5
|
||||
0000000000000046 R_X86_64_32 .debug_str+0x00000000000001c0
|
||||
000000000000004d R_X86_64_32 .debug_str+0x0000000000000122
|
||||
0000000000000054 R_X86_64_32 .debug_str+0x0000000000000143
|
||||
000000000000005b R_X86_64_32 .debug_str+0x00000000000001a6
|
||||
0000000000000062 R_X86_64_32 .debug_str+0x00000000000001fe
|
||||
0000000000000069 R_X86_64_32 .debug_str+0x00000000000001e6
|
||||
0000000000000072 R_X86_64_32 .debug_str+0x00000000000001ce
|
||||
0000000000000079 R_X86_64_32 .debug_str+0x000000000000010b
|
||||
000000000000007e R_X86_64_32 .debug_str+0x0000000000000191
|
||||
0000000000000089 R_X86_64_32 .debug_str+0x0000000000000181
|
||||
00000000000000a3 R_X86_64_32 .debug_str+0x00000000000000de
|
||||
00000000000000ae R_X86_64_32 .debug_str+0x000000000000013d
|
||||
00000000000000ba R_X86_64_32 .debug_str+0x00000000000000e3
|
||||
00000000000000e3 R_X86_64_32 .debug_str+0x0000000000000130
|
||||
00000000000000ee R_X86_64_64 .data
|
||||
00000000000000f7 R_X86_64_32 .debug_str+0x00000000000001d8
|
||||
0000000000000102 R_X86_64_64 .bss
|
||||
000000000000010b R_X86_64_32 .debug_str+0x0000000000000156
|
||||
000000000000011c R_X86_64_32 .debug_str+0x00000000000001a1
|
||||
0000000000000127 R_X86_64_32 .debug_str+0x00000000000000f9
|
||||
000000000000013e R_X86_64_32 .debug_str+0x00000000000001b9
|
||||
0000000000000149 R_X86_64_32 .debug_str+0x00000000000001f0
|
||||
0000000000000155 R_X86_64_32 .debug_str+0x00000000000000cd
|
||||
0000000000000160 R_X86_64_64 .text+0x0000000000000040
|
||||
0000000000000177 R_X86_64_32 .debug_str+0x00000000000001a1
|
||||
0000000000000180 R_X86_64_32 .debug_loclists+0x0000000000000014
|
||||
0000000000000184 R_X86_64_32 .debug_loclists+0x000000000000000c
|
||||
0000000000000197 R_X86_64_32 .debug_rnglists+0x0000000000000016
|
||||
00000000000001a0 R_X86_64_32 .debug_str+0x00000000000001f0
|
||||
00000000000001aa R_X86_64_32 .debug_loclists+0x000000000000003c
|
||||
00000000000001ae R_X86_64_32 .debug_loclists+0x0000000000000036
|
||||
00000000000001b4 R_X86_64_64 .text+0x00000000000000ba
|
||||
00000000000001c9 R_X86_64_32 .debug_str+0x00000000000001b3
|
||||
00000000000001d3 R_X86_64_32 .debug_loclists+0x0000000000000061
|
||||
00000000000001d7 R_X86_64_32 .debug_loclists+0x0000000000000053
|
||||
00000000000001dc R_X86_64_32 .debug_str+0x00000000000001f0
|
||||
00000000000001e6 R_X86_64_32 .debug_loclists+0x00000000000000ab
|
||||
00000000000001ea R_X86_64_32 .debug_loclists+0x0000000000000097
|
||||
00000000000001ef R_X86_64_32 .debug_str+0x00000000000000c8
|
||||
00000000000001f9 R_X86_64_32 .debug_loclists+0x0000000000000100
|
||||
00000000000001fd R_X86_64_32 .debug_loclists+0x00000000000000f8
|
||||
0000000000000202 R_X86_64_32 .debug_str+0x0000000000000168
|
||||
000000000000020c R_X86_64_32 .debug_loclists+0x0000000000000125
|
||||
0000000000000210 R_X86_64_32 .debug_loclists+0x000000000000011d
|
||||
0000000000000219 R_X86_64_64 .text+0x000000000000010b
|
||||
0000000000000222 R_X86_64_64 .text+0x000000000000010b
|
||||
000000000000023a R_X86_64_32 .debug_loclists+0x0000000000000154
|
||||
000000000000023e R_X86_64_32 .debug_loclists+0x0000000000000152
|
||||
0000000000000247 R_X86_64_32 .debug_loclists+0x000000000000015f
|
||||
000000000000024b R_X86_64_32 .debug_loclists+0x000000000000015d
|
||||
0000000000000256 R_X86_64_64 .text+0x0000000000000044
|
||||
000000000000025f R_X86_64_32 .debug_rnglists+0x000000000000000c
|
||||
000000000000026b R_X86_64_32 .debug_loclists+0x0000000000000169
|
||||
000000000000026f R_X86_64_32 .debug_loclists+0x0000000000000167
|
||||
0000000000000274 R_X86_64_32 .debug_rnglists+0x000000000000000c
|
||||
000000000000027d R_X86_64_32 .debug_loclists+0x0000000000000174
|
||||
0000000000000281 R_X86_64_32 .debug_loclists+0x0000000000000170
|
||||
000000000000028e R_X86_64_32 .debug_str+0x000000000000020a
|
||||
0000000000000295 R_X86_64_64 .text
|
||||
00000000000002ac R_X86_64_32 .debug_str+0x00000000000001a1
|
||||
00000000000002b5 R_X86_64_32 .debug_loclists+0x0000000000000187
|
||||
00000000000002b9 R_X86_64_32 .debug_loclists+0x0000000000000183
|
||||
00000000000002be R_X86_64_32 .debug_str+0x00000000000001f0
|
||||
00000000000002cd R_X86_64_32 .debug_str+0x0000000000000100
|
||||
00000000000002de R_X86_64_32 .debug_str+0x00000000000001d3
|
||||
00000000000002e9 R_X86_64_32 .debug_str+0x00000000000001b9
|
||||
00000000000002f9 R_X86_64_64 .text+0x0000000000000190
|
||||
0000000000000310 R_X86_64_32 .debug_loclists+0x000000000000019b
|
||||
0000000000000314 R_X86_64_32 .debug_loclists+0x0000000000000195
|
||||
000000000000031d R_X86_64_32 .debug_loclists+0x00000000000001b9
|
||||
0000000000000321 R_X86_64_32 .debug_loclists+0x00000000000001b3
|
||||
000000000000032a R_X86_64_32 .debug_loclists+0x00000000000001d8
|
||||
000000000000032e R_X86_64_32 .debug_loclists+0x00000000000001d2
|
||||
0000000000000337 R_X86_64_32 .debug_loclists+0x00000000000001f5
|
||||
000000000000033b R_X86_64_32 .debug_loclists+0x00000000000001f1
|
||||
0000000000000344 R_X86_64_32 .debug_loclists+0x0000000000000207
|
||||
0000000000000348 R_X86_64_32 .debug_loclists+0x0000000000000205
|
||||
0000000000000351 R_X86_64_64 .text+0x00000000000001c7
|
||||
000000000000035a R_X86_64_64 .text+0x00000000000001c7
|
||||
0000000000000373 R_X86_64_32 .debug_loclists+0x0000000000000211
|
||||
0000000000000377 R_X86_64_32 .debug_loclists+0x000000000000020f
|
||||
0000000000000380 R_X86_64_32 .debug_loclists+0x000000000000021b
|
||||
0000000000000384 R_X86_64_32 .debug_loclists+0x0000000000000219
|
||||
000000000000038d R_X86_64_32 .debug_loclists+0x0000000000000229
|
||||
0000000000000391 R_X86_64_32 .debug_loclists+0x0000000000000223
|
||||
000000000000039a R_X86_64_32 .debug_loclists+0x0000000000000245
|
||||
000000000000039e R_X86_64_32 .debug_loclists+0x0000000000000241
|
||||
00000000000003a7 R_X86_64_32 .debug_loclists+0x0000000000000257
|
||||
00000000000003ab R_X86_64_32 .debug_loclists+0x0000000000000255
|
||||
00000000000003b4 R_X86_64_64 .text+0x00000000000001dc
|
||||
00000000000003bd R_X86_64_64 .text+0x00000000000001dc
|
||||
00000000000003d6 R_X86_64_32 .debug_loclists+0x0000000000000261
|
||||
00000000000003da R_X86_64_32 .debug_loclists+0x000000000000025f
|
||||
00000000000003e3 R_X86_64_32 .debug_loclists+0x000000000000026b
|
||||
00000000000003e7 R_X86_64_32 .debug_loclists+0x0000000000000269
|
||||
00000000000003f0 R_X86_64_32 .debug_loclists+0x0000000000000277
|
||||
00000000000003f4 R_X86_64_32 .debug_loclists+0x0000000000000273
|
||||
00000000000003fd R_X86_64_32 .debug_loclists+0x000000000000028a
|
||||
0000000000000401 R_X86_64_32 .debug_loclists+0x0000000000000286
|
||||
000000000000040a R_X86_64_32 .debug_loclists+0x000000000000029c
|
||||
000000000000040e R_X86_64_32 .debug_loclists+0x000000000000029a
|
||||
0000000000000417 R_X86_64_64 .text+0x00000000000001ea
|
||||
0000000000000420 R_X86_64_64 .text+0x00000000000001ea
|
||||
0000000000000439 R_X86_64_32 .debug_loclists+0x00000000000002a6
|
||||
000000000000043d R_X86_64_32 .debug_loclists+0x00000000000002a4
|
||||
0000000000000446 R_X86_64_32 .debug_loclists+0x00000000000002b0
|
||||
000000000000044a R_X86_64_32 .debug_loclists+0x00000000000002ae
|
||||
0000000000000453 R_X86_64_32 .debug_loclists+0x00000000000002bc
|
||||
0000000000000457 R_X86_64_32 .debug_loclists+0x00000000000002b8
|
||||
0000000000000460 R_X86_64_32 .debug_loclists+0x00000000000002cf
|
||||
0000000000000464 R_X86_64_32 .debug_loclists+0x00000000000002cb
|
||||
000000000000046d R_X86_64_32 .debug_loclists+0x00000000000002e1
|
||||
0000000000000471 R_X86_64_32 .debug_loclists+0x00000000000002df
|
||||
000000000000047a R_X86_64_64 .text+0x00000000000001f7
|
||||
0000000000000483 R_X86_64_64 .text+0x00000000000001f7
|
||||
000000000000049c R_X86_64_32 .debug_loclists+0x00000000000002eb
|
||||
00000000000004a0 R_X86_64_32 .debug_loclists+0x00000000000002e9
|
||||
00000000000004a9 R_X86_64_32 .debug_loclists+0x00000000000002f5
|
||||
00000000000004ad R_X86_64_32 .debug_loclists+0x00000000000002f3
|
||||
00000000000004b6 R_X86_64_32 .debug_loclists+0x0000000000000301
|
||||
00000000000004ba R_X86_64_32 .debug_loclists+0x00000000000002fd
|
||||
00000000000004c3 R_X86_64_32 .debug_loclists+0x0000000000000314
|
||||
00000000000004c7 R_X86_64_32 .debug_loclists+0x0000000000000310
|
||||
00000000000004d0 R_X86_64_32 .debug_loclists+0x0000000000000326
|
||||
00000000000004d4 R_X86_64_32 .debug_loclists+0x0000000000000324
|
||||
00000000000004dd R_X86_64_64 .text+0x0000000000000204
|
||||
00000000000004e6 R_X86_64_64 .text+0x0000000000000204
|
||||
00000000000004ff R_X86_64_32 .debug_loclists+0x0000000000000330
|
||||
0000000000000503 R_X86_64_32 .debug_loclists+0x000000000000032e
|
||||
000000000000050c R_X86_64_32 .debug_loclists+0x000000000000033a
|
||||
0000000000000510 R_X86_64_32 .debug_loclists+0x0000000000000338
|
||||
0000000000000519 R_X86_64_32 .debug_loclists+0x0000000000000344
|
||||
000000000000051d R_X86_64_32 .debug_loclists+0x0000000000000342
|
||||
0000000000000526 R_X86_64_32 .debug_loclists+0x0000000000000350
|
||||
000000000000052a R_X86_64_32 .debug_loclists+0x000000000000034c
|
||||
0000000000000533 R_X86_64_32 .debug_loclists+0x0000000000000362
|
||||
0000000000000537 R_X86_64_32 .debug_loclists+0x0000000000000360
|
||||
0000000000000540 R_X86_64_64 .text+0x0000000000000211
|
||||
0000000000000549 R_X86_64_64 .text+0x0000000000000211
|
||||
0000000000000562 R_X86_64_32 .debug_loclists+0x000000000000036e
|
||||
0000000000000566 R_X86_64_32 .debug_loclists+0x000000000000036c
|
||||
000000000000056f R_X86_64_32 .debug_loclists+0x0000000000000378
|
||||
0000000000000573 R_X86_64_32 .debug_loclists+0x0000000000000376
|
||||
000000000000057c R_X86_64_32 .debug_loclists+0x0000000000000384
|
||||
0000000000000580 R_X86_64_32 .debug_loclists+0x0000000000000380
|
||||
0000000000000589 R_X86_64_32 .debug_loclists+0x0000000000000397
|
||||
000000000000058d R_X86_64_32 .debug_loclists+0x0000000000000393
|
||||
0000000000000596 R_X86_64_32 .debug_loclists+0x00000000000003a9
|
||||
000000000000059a R_X86_64_32 .debug_loclists+0x00000000000003a7
|
||||
00000000000005a3 R_X86_64_64 .text+0x000000000000021e
|
||||
00000000000005ac R_X86_64_64 .text+0x000000000000021e
|
||||
00000000000005c5 R_X86_64_32 .debug_loclists+0x00000000000003b5
|
||||
00000000000005c9 R_X86_64_32 .debug_loclists+0x00000000000003b3
|
||||
00000000000005d2 R_X86_64_32 .debug_loclists+0x00000000000003bf
|
||||
00000000000005d6 R_X86_64_32 .debug_loclists+0x00000000000003bd
|
||||
00000000000005df R_X86_64_32 .debug_loclists+0x00000000000003cb
|
||||
00000000000005e3 R_X86_64_32 .debug_loclists+0x00000000000003c7
|
||||
00000000000005ec R_X86_64_32 .debug_loclists+0x00000000000003de
|
||||
00000000000005f0 R_X86_64_32 .debug_loclists+0x00000000000003da
|
||||
00000000000005f9 R_X86_64_32 .debug_loclists+0x00000000000003f0
|
||||
00000000000005fd R_X86_64_32 .debug_loclists+0x00000000000003ee
|
||||
0000000000000606 R_X86_64_64 .text+0x000000000000022b
|
||||
000000000000060f R_X86_64_64 .text+0x000000000000022b
|
||||
0000000000000628 R_X86_64_32 .debug_loclists+0x00000000000003fc
|
||||
000000000000062c R_X86_64_32 .debug_loclists+0x00000000000003fa
|
||||
0000000000000635 R_X86_64_32 .debug_loclists+0x0000000000000406
|
||||
0000000000000639 R_X86_64_32 .debug_loclists+0x0000000000000404
|
||||
0000000000000642 R_X86_64_32 .debug_loclists+0x0000000000000414
|
||||
0000000000000646 R_X86_64_32 .debug_loclists+0x000000000000040e
|
||||
000000000000064f R_X86_64_32 .debug_loclists+0x0000000000000430
|
||||
0000000000000653 R_X86_64_32 .debug_loclists+0x000000000000042c
|
||||
000000000000065c R_X86_64_32 .debug_loclists+0x0000000000000443
|
||||
0000000000000660 R_X86_64_32 .debug_loclists+0x000000000000043f
|
||||
0000000000000665 R_X86_64_64 .text+0x000000000000024e
|
||||
0000000000000683 R_X86_64_64 .text+0x000000000000026c
|
||||
0000000000000697 R_X86_64_64 .text+0x000000000000029e
|
||||
00000000000006a8 R_X86_64_64 .text+0x00000000000002ca
|
||||
00000000000006b9 R_X86_64_64 .text+0x00000000000002f1
|
||||
00000000000006d0 R_X86_64_64 .text+0x0000000000000313
|
||||
00000000000006e7 R_X86_64_64 .text+0x0000000000000333
|
||||
00000000000006fe R_X86_64_64 .text+0x0000000000000350
|
||||
0000000000000715 R_X86_64_64 .text+0x000000000000036e
|
||||
000000000000072e R_X86_64_64 .text+0x0000000000000391
|
||||
|
||||
|
||||
RELOCATION RECORDS FOR [.debug_aranges]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000006 R_X86_64_32 .debug_info
|
||||
0000000000000010 R_X86_64_64 .text
|
||||
|
||||
|
||||
RELOCATION RECORDS FOR [.debug_line]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000022 R_X86_64_32 .debug_line_str+0x000000000000004f
|
||||
0000000000000026 R_X86_64_32 .debug_line_str+0x000000000000006b
|
||||
0000000000000030 R_X86_64_32 .debug_line_str+0x000000000000008f
|
||||
0000000000000035 R_X86_64_32 .debug_line_str+0x00000000000000c2
|
||||
000000000000003a R_X86_64_32 .debug_line_str+0x00000000000000d1
|
||||
0000000000000044 R_X86_64_64 .text
|
||||
|
||||
|
||||
RELOCATION RECORDS FOR [.eh_frame]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000020 R_X86_64_PC32 .text
|
||||
0000000000000034 R_X86_64_PC32 .text+0x0000000000000040
|
||||
0000000000000048 R_X86_64_PC32 .text+0x0000000000000190
|
||||
|
||||
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
Cover Page
|
||||
|
||||
#
|
||||
|
|
@ -1 +0,0 @@
|
|||
./input/perl.pl syntax OK
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
(B[m[38;2;153;153;153m[48;2;32;32;32m[3m#!/usr/bin/perl(B[m[38;2;255;255;255m[48;2;32;32;32m (B[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
(B[m[38;2;106;184;37m[48;2;32;32;32m[1mprint(B[m[38;2;208;208;208m[48;2;32;32;32m (B[m[38;2;237;157;19m[48;2;32;32;32m"Hello, world!\n"(B[m[38;2;208;208;208m[48;2;32;32;32m;(B[m
|
||||
|
|
@ -1 +0,0 @@
|
|||
No syntax errors detected in ./input/root.php
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;0;0;0m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀▀[m
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[m[38;2;0;0;0m[48;2;7;7;7m▀[m[38;2;7;7;7m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;1;1;1m[48;2;0;0;0m▀[m[38;2;1;1;1m[48;2;1;1;1m▀[m[38;2;1;1;1m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;251;251;251m▀[m[38;2;2;2;2m[48;2;253;253;253m▀[m[38;2;1;1;1m[48;2;254;254;254m▀[m[38;2;1;1;1m[48;2;255;255;255m▀[m[38;2;1;1;1m[48;2;0;0;0m▀▀[m[38;2;3;3;3m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;1;1;1m▀[m[38;2;0;0;0m[48;2;2;2;2m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;4;4;4m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;2;2;2m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;251;251;251m▀[m[38;2;255;255;255m[48;2;249;249;249m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;247;247;247m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;249;249;249m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;1;1;1m[48;2;249;249;249m▀[m[38;2;0;0;0m[48;2;1;1;1m▀[m[38;2;2;2;2m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;2;2;2m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;2;2;2m▀[m[38;2;253;253;253m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;252;252;252m▀[m[38;2;248;248;248m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;247;247;247m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;254;254;254m[48;2;253;253;253m▀[m[38;2;253;253;253m[48;2;255;255;255m▀[m[38;2;252;252;252m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;251;251;251m▀[m[38;2;255;255;255m[48;2;248;248;248m▀[m[38;2;1;1;1m[48;2;255;255;255m▀[m[38;2;2;2;2m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;4;4;4m[48;2;0;0;0m▀[m[38;2;253;253;253m[48;2;253;253;253m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;253;253;253m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;251;251;251m[48;2;255;255;255m▀[m[38;2;253;253;253m[48;2;255;255;255m▀[m[38;2;252;252;252m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;2;2;2m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;4;4;4m[48;2;0;0;0m▀[m[38;2;249;249;249m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;251;251;251m▀[m[38;2;252;252;252m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;253;253;253m[48;2;253;253;253m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;250;250;250m[48;2;253;253;253m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;248;248;248m▀[m[38;2;252;252;252m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;252;252;252m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;1;1;1m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;2;2;2m[48;2;1;1;1m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;253;253;253m[48;2;255;255;255m▀[m[38;2;250;250;250m[48;2;253;253;253m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;249;249;249m[48;2;253;253;253m▀[m[38;2;252;252;252m[48;2;255;255;255m▀[m[38;2;253;253;253m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;246;246;246m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;253;253;253m[48;2;0;0;0m▀[m[38;2;2;2;2m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;1;1;1m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;6;6;6m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;252;252;252m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;253;253;253m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;252;252;252m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;255;255;255m▀[m[38;2;253;253;253m[48;2;255;255;255m▀[m[38;2;249;249;249m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;252;252;252m▀[m[38;2;251;251;251m[48;2;1;1;1m▀[m[38;2;7;7;7m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;2;2;2m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;5;5;5m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;2;2;2m[48;2;1;1;1m▀[m[38;2;0;0;0m[48;2;2;2;2m▀[m[38;2;254;254;254m[48;2;1;1;1m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;248;248;248m[48;2;4;4;4m▀[m[38;2;252;252;252m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;251;251;251m[48;2;1;1;1m▀[m[38;2;0;0;0m[48;2;1;1;1m▀[m[38;2;1;1;1m[48;2;1;1;1m▀[m[38;2;0;0;0m[48;2;2;2;2m▀[m[38;2;1;1;1m[48;2;0;0;0m▀[m[38;2;3;3;3m[48;2;0;0;0m▀[m
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;0;0;0m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;0;0;0m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;0;0;0m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀▀[m[38;2;0;0;0m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;255;255;255m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀[m[38;2;255;255;255m[48;2;254;254;254m▀[m[38;2;254;254;254m[48;2;255;255;255m▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m[38;2;255;255;255m[48;2;0;0;0m▀[m[38;2;254;254;254m[48;2;0;0;0m▀[m[38;2;255;255;255m[48;2;0;0;0m▀▀▀▀[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀[m
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀(B[m[38;2;0;0;0m[48;2;255;255;255m▀▀▀▀(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀▀(B[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀(B[m[38;2;0;0;0m[48;2;255;255;255m▀(B[m[38;2;254;254;254m[48;2;255;255;255m▀▀(B[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀(B[m[38;2;254;254;254m[48;2;255;255;255m▀▀(B[m[38;2;0;0;0m[48;2;254;254;254m▀(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀(B[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀(B[m[38;2;254;254;254m[48;2;254;254;254m▀(B[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀(B[m[38;2;254;254;254m[48;2;254;254;254m▀(B[m[38;2;0;0;0m[48;2;255;255;255m▀(B[m[38;2;0;0;0m[48;2;0;0;0m▀(B[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
(B[m[38;2;0;0;0m[48;2;0;0;0m▀(B[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀▀▀(B[m[38;2;0;0;0m[48;2;0;0;0m▀(B[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
(B[m[38;2;0;0;0m[48;2;0;0;0m▀(B[m[38;2;254;254;254m[48;2;254;254;254m▀(B[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀▀▀(B[m[38;2;255;255;255m[48;2;254;254;254m▀(B[m[38;2;0;0;0m[48;2;0;0;0m▀(B[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
(B[m[38;2;0;0;0m[48;2;0;0;0m▀(B[m[38;2;255;255;255m[48;2;0;0;0m▀(B[m[38;2;254;254;254m[48;2;254;254;254m▀(B[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀▀▀▀▀(B[m[38;2;255;255;255m[48;2;254;254;254m▀(B[m[38;2;255;255;255m[48;2;0;0;0m▀(B[m[38;2;0;0;0m[48;2;0;0;0m▀(B[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀(B[m[38;2;254;254;254m[48;2;255;255;255m▀(B[m[38;2;255;255;255m[48;2;254;254;254m▀(B[m[38;2;255;255;255m[48;2;255;255;255m▀▀▀▀▀▀(B[m[38;2;255;255;255m[48;2;254;254;254m▀(B[m[38;2;254;254;254m[48;2;255;255;255m▀(B[m[38;2;255;255;255m[48;2;0;0;0m▀(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀(B[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀(B[m[38;2;255;255;255m[48;2;0;0;0m▀(B[m[38;2;254;254;254m[48;2;0;0;0m▀(B[m[38;2;255;255;255m[48;2;0;0;0m▀▀▀▀(B[m[38;2;0;0;0m[48;2;0;0;0m▀▀▀▀▀(B[m
|
||||
|
|
@ -1 +0,0 @@
|
|||
[m
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
[m[38;2;255;255;255m[48;2;32;32;32m [m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;255;255;255m[48;2;32;32;32m [m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;106;184;37m[48;2;32;32;32m[1mdef[m[38;2;208;208;208m[48;2;32;32;32m [m[38;2;68;127;207m[48;2;32;32;32mhi[m[38;2;208;208;208m[48;2;32;32;32m():[m
|
||||
|
|
@ -1 +0,0 @@
|
|||
3:0: 'hi' 1
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
|
||||
Name File
|
||||
---- ----
|
||||
m __main__ ./input/hi3.py
|
||||
|
|
@ -1 +0,0 @@
|
|||
No tests.
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
hi
|
||||
|
||||
.
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.000s
|
||||
|
||||
OK
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
tested foo
|
||||
|
||||
|
|
@ -1,338 +0,0 @@
|
|||
ELF Header:
|
||||
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
|
||||
Class: ELF64
|
||||
Data: 2's complement, little endian
|
||||
Version: 1 (current)
|
||||
OS/ABI: UNIX - System V
|
||||
ABI Version: 0
|
||||
Type: REL (Relocatable file)
|
||||
Machine: Advanced Micro Devices X86-64
|
||||
Version: 0x1
|
||||
Entry point address: 0x0
|
||||
Start of program headers: 0 (bytes into file)
|
||||
Start of section headers: 12504 (bytes into file)
|
||||
Flags: 0x0
|
||||
Size of this header: 64 (bytes)
|
||||
Size of program headers: 0 (bytes)
|
||||
Number of program headers: 0
|
||||
Size of section headers: 64 (bytes)
|
||||
Number of section headers: 24
|
||||
Section header string table index: 23
|
||||
|
||||
Section Headers:
|
||||
[Nr] Name Type Address Offset
|
||||
Size EntSize Flags Link Info Align
|
||||
[ 0] NULL 0000000000000000 00000000
|
||||
0000000000000000 0000000000000000 0 0 0
|
||||
[ 1] .text PROGBITS 0000000000000000 00000040
|
||||
00000000000003b7 0000000000000000 AX 0 0 16
|
||||
[ 2] .rela.text RELA 0000000000000000 00001c08
|
||||
00000000000000f0 0000000000000018 I 21 1 8
|
||||
[ 3] .data PROGBITS 0000000000000000 000003f8
|
||||
0000000000000004 0000000000000000 WA 0 0 4
|
||||
[ 4] .bss NOBITS 0000000000000000 000003fc
|
||||
0000000000000004 0000000000000000 WA 0 0 4
|
||||
[ 5] .debug_info PROGBITS 0000000000000000 000003fc
|
||||
0000000000000747 0000000000000000 0 0 1
|
||||
[ 6] .rela.debug_info RELA 0000000000000000 00001cf8
|
||||
00000000000011e8 0000000000000018 I 21 5 8
|
||||
[ 7] .debug_abbrev PROGBITS 0000000000000000 00000b43
|
||||
0000000000000232 0000000000000000 0 0 1
|
||||
[ 8] .debug_loclists PROGBITS 0000000000000000 00000d75
|
||||
0000000000000454 0000000000000000 0 0 1
|
||||
[ 9] .debug_aranges PROGBITS 0000000000000000 000011c9
|
||||
0000000000000030 0000000000000000 0 0 1
|
||||
[10] .rela.debug_[...] RELA 0000000000000000 00002ee0
|
||||
0000000000000030 0000000000000018 I 21 9 8
|
||||
[11] .debug_rnglists PROGBITS 0000000000000000 000011f9
|
||||
000000000000001f 0000000000000000 0 0 1
|
||||
[12] .debug_line PROGBITS 0000000000000000 00001218
|
||||
0000000000000420 0000000000000000 0 0 1
|
||||
[13] .rela.debug_line RELA 0000000000000000 00002f10
|
||||
0000000000000090 0000000000000018 I 21 12 8
|
||||
[14] .debug_str PROGBITS 0000000000000000 00001638
|
||||
000000000000021b 0000000000000001 MS 0 0 1
|
||||
[15] .debug_line_str PROGBITS 0000000000000000 00001853
|
||||
00000000000000e0 0000000000000001 MS 0 0 1
|
||||
[16] .comment PROGBITS 0000000000000000 00001933
|
||||
0000000000000026 0000000000000001 MS 0 0 1
|
||||
[17] .note.GNU-stack PROGBITS 0000000000000000 00001959
|
||||
0000000000000000 0000000000000000 0 0 1
|
||||
[18] .note.gnu.pr[...] NOTE 0000000000000000 00001960
|
||||
0000000000000020 0000000000000000 A 0 0 8
|
||||
[19] .eh_frame PROGBITS 0000000000000000 00001980
|
||||
0000000000000090 0000000000000000 A 0 0 8
|
||||
[20] .rela.eh_frame RELA 0000000000000000 00002fa0
|
||||
0000000000000048 0000000000000018 I 21 19 8
|
||||
[21] .symtab SYMTAB 0000000000000000 00001a10
|
||||
0000000000000198 0000000000000018 22 14 8
|
||||
[22] .strtab STRTAB 0000000000000000 00001ba8
|
||||
000000000000005f 0000000000000000 0 0 1
|
||||
[23] .shstrtab STRTAB 0000000000000000 00002fe8
|
||||
00000000000000eb 0000000000000000 0 0 1
|
||||
Key to Flags:
|
||||
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
|
||||
L (link order), O (extra OS processing required), G (group), T (TLS),
|
||||
C (compressed), x (unknown), o (OS specific), E (exclude),
|
||||
D (mbind), l (large), p (processor specific)
|
||||
|
||||
There are no section groups in this file.
|
||||
|
||||
There are no program headers in this file.
|
||||
|
||||
There is no dynamic section in this file.
|
||||
|
||||
Relocation section '.rela.text' at offset 0x1c08 contains 10 entries:
|
||||
Offset Info Type Sym. Value Sym. Name + Addend
|
||||
000000000046 000400000002 R_X86_64_PC32 0000000000000000 .bss - 4
|
||||
000000000054 000300000002 R_X86_64_PC32 0000000000000000 .data - 8
|
||||
00000000005e 000300000002 R_X86_64_PC32 0000000000000000 .data - 4
|
||||
00000000006f 000400000002 R_X86_64_PC32 0000000000000000 .bss - 4
|
||||
0000000000aa 000400000002 R_X86_64_PC32 0000000000000000 .bss - 4
|
||||
0000000000b6 000300000002 R_X86_64_PC32 0000000000000000 .data - 4
|
||||
0000000000d0 000300000002 R_X86_64_PC32 0000000000000000 .data - 4
|
||||
000000000159 000400000002 R_X86_64_PC32 0000000000000000 .bss - 4
|
||||
000000000169 000300000002 R_X86_64_PC32 0000000000000000 .data - 4
|
||||
00000000024a 001000000004 R_X86_64_PLT32 0000000000000190 RotatingTree_Enum - 4
|
||||
|
||||
Relocation section '.rela.debug_info' at offset 0x1cf8 contains 191 entries:
|
||||
Offset Info Type Sym. Value Sym. Name + Addend
|
||||
000000000008 00080000000a R_X86_64_32 0000000000000000 .debug_abbrev + 0
|
||||
00000000000d 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 0
|
||||
000000000012 000d0000000a R_X86_64_32 0000000000000000 .debug_line_str + 0
|
||||
000000000016 000d0000000a R_X86_64_32 0000000000000000 .debug_line_str + 33
|
||||
00000000001a 000200000001 R_X86_64_64 0000000000000000 .text + 0
|
||||
00000000002a 000b0000000a R_X86_64_32 0000000000000000 .debug_line + 0
|
||||
000000000031 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 16f
|
||||
00000000003f 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1f5
|
||||
000000000046 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1c0
|
||||
00000000004d 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 122
|
||||
000000000054 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 143
|
||||
00000000005b 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1a6
|
||||
000000000062 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1fe
|
||||
000000000069 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1e6
|
||||
000000000072 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1ce
|
||||
000000000079 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 10b
|
||||
00000000007e 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 191
|
||||
000000000089 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 181
|
||||
0000000000a3 000c0000000a R_X86_64_32 0000000000000000 .debug_str + de
|
||||
0000000000ae 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 13d
|
||||
0000000000ba 000c0000000a R_X86_64_32 0000000000000000 .debug_str + e3
|
||||
0000000000e3 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 130
|
||||
0000000000ee 000300000001 R_X86_64_64 0000000000000000 .data + 0
|
||||
0000000000f7 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1d8
|
||||
000000000102 000400000001 R_X86_64_64 0000000000000000 .bss + 0
|
||||
00000000010b 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 156
|
||||
00000000011c 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1a1
|
||||
000000000127 000c0000000a R_X86_64_32 0000000000000000 .debug_str + f9
|
||||
00000000013e 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1b9
|
||||
000000000149 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1f0
|
||||
000000000155 000c0000000a R_X86_64_32 0000000000000000 .debug_str + cd
|
||||
000000000160 000200000001 R_X86_64_64 0000000000000000 .text + 40
|
||||
000000000177 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1a1
|
||||
000000000180 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 14
|
||||
000000000184 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + c
|
||||
000000000197 000a0000000a R_X86_64_32 0000000000000000 .debug_rnglists + 16
|
||||
0000000001a0 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1f0
|
||||
0000000001aa 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3c
|
||||
0000000001ae 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 36
|
||||
0000000001b4 000200000001 R_X86_64_64 0000000000000000 .text + ba
|
||||
0000000001c9 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1b3
|
||||
0000000001d3 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 61
|
||||
0000000001d7 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 53
|
||||
0000000001dc 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1f0
|
||||
0000000001e6 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + ab
|
||||
0000000001ea 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 97
|
||||
0000000001ef 000c0000000a R_X86_64_32 0000000000000000 .debug_str + c8
|
||||
0000000001f9 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 100
|
||||
0000000001fd 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + f8
|
||||
000000000202 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 168
|
||||
00000000020c 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 125
|
||||
000000000210 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 11d
|
||||
000000000219 000200000001 R_X86_64_64 0000000000000000 .text + 10b
|
||||
000000000222 000200000001 R_X86_64_64 0000000000000000 .text + 10b
|
||||
00000000023a 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 154
|
||||
00000000023e 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 152
|
||||
000000000247 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 15f
|
||||
00000000024b 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 15d
|
||||
000000000256 000200000001 R_X86_64_64 0000000000000000 .text + 44
|
||||
00000000025f 000a0000000a R_X86_64_32 0000000000000000 .debug_rnglists + c
|
||||
00000000026b 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 169
|
||||
00000000026f 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 167
|
||||
000000000274 000a0000000a R_X86_64_32 0000000000000000 .debug_rnglists + c
|
||||
00000000027d 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 174
|
||||
000000000281 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 170
|
||||
00000000028e 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 20a
|
||||
000000000295 000200000001 R_X86_64_64 0000000000000000 .text + 0
|
||||
0000000002ac 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1a1
|
||||
0000000002b5 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 187
|
||||
0000000002b9 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 183
|
||||
0000000002be 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1f0
|
||||
0000000002cd 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 100
|
||||
0000000002de 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1d3
|
||||
0000000002e9 000c0000000a R_X86_64_32 0000000000000000 .debug_str + 1b9
|
||||
0000000002f9 000200000001 R_X86_64_64 0000000000000000 .text + 190
|
||||
000000000310 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 19b
|
||||
000000000314 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 195
|
||||
00000000031d 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 1b9
|
||||
000000000321 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 1b3
|
||||
00000000032a 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 1d8
|
||||
00000000032e 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 1d2
|
||||
000000000337 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 1f5
|
||||
00000000033b 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 1f1
|
||||
000000000344 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 207
|
||||
000000000348 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 205
|
||||
000000000351 000200000001 R_X86_64_64 0000000000000000 .text + 1c7
|
||||
00000000035a 000200000001 R_X86_64_64 0000000000000000 .text + 1c7
|
||||
000000000373 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 211
|
||||
000000000377 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 20f
|
||||
000000000380 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 21b
|
||||
000000000384 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 219
|
||||
00000000038d 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 229
|
||||
000000000391 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 223
|
||||
00000000039a 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 245
|
||||
00000000039e 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 241
|
||||
0000000003a7 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 257
|
||||
0000000003ab 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 255
|
||||
0000000003b4 000200000001 R_X86_64_64 0000000000000000 .text + 1dc
|
||||
0000000003bd 000200000001 R_X86_64_64 0000000000000000 .text + 1dc
|
||||
0000000003d6 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 261
|
||||
0000000003da 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 25f
|
||||
0000000003e3 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 26b
|
||||
0000000003e7 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 269
|
||||
0000000003f0 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 277
|
||||
0000000003f4 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 273
|
||||
0000000003fd 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 28a
|
||||
000000000401 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 286
|
||||
00000000040a 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 29c
|
||||
00000000040e 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 29a
|
||||
000000000417 000200000001 R_X86_64_64 0000000000000000 .text + 1ea
|
||||
000000000420 000200000001 R_X86_64_64 0000000000000000 .text + 1ea
|
||||
000000000439 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2a6
|
||||
00000000043d 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2a4
|
||||
000000000446 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2b0
|
||||
00000000044a 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2ae
|
||||
000000000453 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2bc
|
||||
000000000457 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2b8
|
||||
000000000460 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2cf
|
||||
000000000464 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2cb
|
||||
00000000046d 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2e1
|
||||
000000000471 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2df
|
||||
00000000047a 000200000001 R_X86_64_64 0000000000000000 .text + 1f7
|
||||
000000000483 000200000001 R_X86_64_64 0000000000000000 .text + 1f7
|
||||
00000000049c 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2eb
|
||||
0000000004a0 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2e9
|
||||
0000000004a9 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2f5
|
||||
0000000004ad 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2f3
|
||||
0000000004b6 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 301
|
||||
0000000004ba 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 2fd
|
||||
0000000004c3 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 314
|
||||
0000000004c7 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 310
|
||||
0000000004d0 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 326
|
||||
0000000004d4 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 324
|
||||
0000000004dd 000200000001 R_X86_64_64 0000000000000000 .text + 204
|
||||
0000000004e6 000200000001 R_X86_64_64 0000000000000000 .text + 204
|
||||
0000000004ff 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 330
|
||||
000000000503 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 32e
|
||||
00000000050c 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 33a
|
||||
000000000510 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 338
|
||||
000000000519 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 344
|
||||
00000000051d 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 342
|
||||
000000000526 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 350
|
||||
00000000052a 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 34c
|
||||
000000000533 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 362
|
||||
000000000537 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 360
|
||||
000000000540 000200000001 R_X86_64_64 0000000000000000 .text + 211
|
||||
000000000549 000200000001 R_X86_64_64 0000000000000000 .text + 211
|
||||
000000000562 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 36e
|
||||
000000000566 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 36c
|
||||
00000000056f 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 378
|
||||
000000000573 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 376
|
||||
00000000057c 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 384
|
||||
000000000580 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 380
|
||||
000000000589 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 397
|
||||
00000000058d 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 393
|
||||
000000000596 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3a9
|
||||
00000000059a 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3a7
|
||||
0000000005a3 000200000001 R_X86_64_64 0000000000000000 .text + 21e
|
||||
0000000005ac 000200000001 R_X86_64_64 0000000000000000 .text + 21e
|
||||
0000000005c5 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3b5
|
||||
0000000005c9 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3b3
|
||||
0000000005d2 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3bf
|
||||
0000000005d6 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3bd
|
||||
0000000005df 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3cb
|
||||
0000000005e3 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3c7
|
||||
0000000005ec 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3de
|
||||
0000000005f0 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3da
|
||||
0000000005f9 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3f0
|
||||
0000000005fd 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3ee
|
||||
000000000606 000200000001 R_X86_64_64 0000000000000000 .text + 22b
|
||||
00000000060f 000200000001 R_X86_64_64 0000000000000000 .text + 22b
|
||||
000000000628 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3fc
|
||||
00000000062c 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 3fa
|
||||
000000000635 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 406
|
||||
000000000639 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 404
|
||||
000000000642 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 414
|
||||
000000000646 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 40e
|
||||
00000000064f 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 430
|
||||
000000000653 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 42c
|
||||
00000000065c 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 443
|
||||
000000000660 00090000000a R_X86_64_32 0000000000000000 .debug_loclists + 43f
|
||||
000000000665 000200000001 R_X86_64_64 0000000000000000 .text + 24e
|
||||
000000000683 000200000001 R_X86_64_64 0000000000000000 .text + 26c
|
||||
000000000697 000200000001 R_X86_64_64 0000000000000000 .text + 29e
|
||||
0000000006a8 000200000001 R_X86_64_64 0000000000000000 .text + 2ca
|
||||
0000000006b9 000200000001 R_X86_64_64 0000000000000000 .text + 2f1
|
||||
0000000006d0 000200000001 R_X86_64_64 0000000000000000 .text + 313
|
||||
0000000006e7 000200000001 R_X86_64_64 0000000000000000 .text + 333
|
||||
0000000006fe 000200000001 R_X86_64_64 0000000000000000 .text + 350
|
||||
000000000715 000200000001 R_X86_64_64 0000000000000000 .text + 36e
|
||||
00000000072e 000200000001 R_X86_64_64 0000000000000000 .text + 391
|
||||
|
||||
Relocation section '.rela.debug_aranges' at offset 0x2ee0 contains 2 entries:
|
||||
Offset Info Type Sym. Value Sym. Name + Addend
|
||||
000000000006 00070000000a R_X86_64_32 0000000000000000 .debug_info + 0
|
||||
000000000010 000200000001 R_X86_64_64 0000000000000000 .text + 0
|
||||
|
||||
Relocation section '.rela.debug_line' at offset 0x2f10 contains 6 entries:
|
||||
Offset Info Type Sym. Value Sym. Name + Addend
|
||||
000000000022 000d0000000a R_X86_64_32 0000000000000000 .debug_line_str + 4f
|
||||
000000000026 000d0000000a R_X86_64_32 0000000000000000 .debug_line_str + 6b
|
||||
000000000030 000d0000000a R_X86_64_32 0000000000000000 .debug_line_str + 8f
|
||||
000000000035 000d0000000a R_X86_64_32 0000000000000000 .debug_line_str + c2
|
||||
00000000003a 000d0000000a R_X86_64_32 0000000000000000 .debug_line_str + d1
|
||||
000000000044 000200000001 R_X86_64_64 0000000000000000 .text + 0
|
||||
|
||||
Relocation section '.rela.eh_frame' at offset 0x2fa0 contains 3 entries:
|
||||
Offset Info Type Sym. Value Sym. Name + Addend
|
||||
000000000020 000200000002 R_X86_64_PC32 0000000000000000 .text + 0
|
||||
000000000034 000200000002 R_X86_64_PC32 0000000000000000 .text + 40
|
||||
000000000048 000200000002 R_X86_64_PC32 0000000000000000 .text + 190
|
||||
No processor specific unwind information to decode
|
||||
|
||||
Symbol table '.symtab' contains 17 entries:
|
||||
Num: Value Size Type Bind Vis Ndx Name
|
||||
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
|
||||
1: 0000000000000000 0 FILE LOCAL DEFAULT ABS rotatingtree.c
|
||||
2: 0000000000000000 0 SECTION LOCAL DEFAULT 1 .text
|
||||
3: 0000000000000000 0 SECTION LOCAL DEFAULT 3 .data
|
||||
4: 0000000000000000 0 SECTION LOCAL DEFAULT 4 .bss
|
||||
5: 0000000000000000 4 OBJECT LOCAL DEFAULT 4 random_stream
|
||||
6: 0000000000000000 4 OBJECT LOCAL DEFAULT 3 random_value
|
||||
7: 0000000000000000 0 SECTION LOCAL DEFAULT 5 .debug_info
|
||||
8: 0000000000000000 0 SECTION LOCAL DEFAULT 7 .debug_abbrev
|
||||
9: 0000000000000000 0 SECTION LOCAL DEFAULT 8 .debug_loclists
|
||||
10: 0000000000000000 0 SECTION LOCAL DEFAULT 11 .debug_rnglists
|
||||
11: 0000000000000000 0 SECTION LOCAL DEFAULT 12 .debug_line
|
||||
12: 0000000000000000 0 SECTION LOCAL DEFAULT 14 .debug_str
|
||||
13: 0000000000000000 0 SECTION LOCAL DEFAULT 15 .debug_line_str
|
||||
14: 0000000000000000 51 FUNC GLOBAL HIDDEN 1 RotatingTree_Add
|
||||
15: 0000000000000040 332 FUNC GLOBAL HIDDEN 1 RotatingTree_Get
|
||||
16: 0000000000000190 551 FUNC GLOBAL HIDDEN 1 RotatingTree_Enum
|
||||
|
||||
No version information found in this file.
|
||||
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 feature: IBT, SHSTK
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
Archive: ./input/hi.zip
|
||||
Zip file size: 187 bytes, number of entries: 1
|
||||
-rw-rw-r-- 3.0 unx 27 tx stor 16-Feb-09 21:50 hi.py
|
||||
1 file, 27 bytes uncompressed, 27 bytes compressed: 0.0%
|
||||
|
|
@ -1 +0,0 @@
|
|||
(B[m[38;2;0;0;0m[48;2;255;255;255mfoo[0m
|
||||
|
|
@ -1 +0,0 @@
|
|||
(B[m[38;2;0;0;0m[48;2;255;255;255mfoo(B[m[38;2;255;255;255m[48;2;70;70;70mbar[0m
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
[m[38;2;255;255;255m[48;2;0;0;0m┏━━━━━━━━━━━━━━ Summary of project ━━━━━━━━━━━━━━┓[m[38;2;100;100;100m[48;2;0;0;0m┌─────────────────────[m[38;2;255;255;255m[48;2;0;0;0m Log [m[38;2;100;100;100m[48;2;0;0;0m──────────────────────┐[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┃ ┃[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[m[38;2;100;100;100m[48;2;0;0;0m└────────────────────────────────────────────────┘[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m┌──────────────────────────────────────────────────────────────────────────────────────────────────┐[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0mNothing selected [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m [m[38;2;100;100;100m[48;2;0;0;0m│[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;100;100;100m[48;2;0;0;0m└──────────────────────────────────────────────────────────────────────────────────────────────────┘[m[38;2;255;255;255m[48;2;0;0;0m
|
||||
[m[38;2;255;255;255m[48;2;76;76;76m [m[38;2;76;255;76m[48;2;76;76;76mh[m[38;2;255;255;255m[48;2;76;76;76melp [m[38;2;76;255;76m[48;2;76;76;76mq[m[38;2;255;255;255m[48;2;76;76;76muit [m[38;2;76;255;76m[48;2;76;76;76mtab[m[38;2;255;255;255m[48;2;76;76;76m:focus [m[38;2;76;255;76m[48;2;76;76;76mt[m[38;2;255;255;255m[48;2;76;76;76murn [m[38;2;76;255;76m[48;2;76;76;76ml[m[38;2;255;255;255m[48;2;76;76;76mog [m[38;2;76;255;76m[48;2;76;76;76me[m[38;2;255;255;255m[48;2;76;76;76mdit [m[38;2;76;255;76m[48;2;76;76;76mn[m[38;2;255;255;255m[48;2;76;76;76mext [m[38;2;76;255;76m[48;2;76;76;76ms[m[38;2;255;255;255m[48;2;76;76;76mort [m[38;2;76;255;76m[48;2;76;76;76mr[m[38;2;255;255;255m[48;2;76;76;76mefresh [m[38;2;76;255;76m[48;2;76;76;76mf[m[38;2;255;255;255m[48;2;76;76;76mullscreen [m[38;2;76;255;76m[48;2;76;76;76mo[m[38;2;255;255;255m[48;2;76;76;76mpen [m
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
|
||||
|
||||
import optparse
|
||||
import os.path
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
|
||||
def _accept_actual(failed):
|
||||
for actual_str, golden_path in failed:
|
||||
with open(golden_path, "wb") as golden_file:
|
||||
golden_file.write(actual_str)
|
||||
print("Wrote golden file:", golden_path)
|
||||
|
||||
|
||||
def _show_differences(failed):
|
||||
temp_dir = tempfile.mkdtemp()
|
||||
try:
|
||||
golden_dir = os.path.join(temp_dir, "golden")
|
||||
actual_dir = os.path.join(temp_dir, "actual")
|
||||
os.mkdir(golden_dir)
|
||||
os.mkdir(actual_dir)
|
||||
for actual_str, golden_file in failed:
|
||||
name = os.path.basename(golden_file)
|
||||
actual_path = os.path.join(actual_dir, name)
|
||||
with open(actual_path, "wb") as actual:
|
||||
actual.write(actual_str)
|
||||
os.symlink(os.path.abspath(golden_file),
|
||||
os.path.join(golden_dir, name))
|
||||
diff_command = ["meld"] if shutil.which("meld") else ["diff", "-r"]
|
||||
subprocess.run(diff_command + [actual_dir, golden_dir])
|
||||
finally:
|
||||
shutil.rmtree(temp_dir)
|
||||
|
||||
|
||||
_FAILED = set()
|
||||
|
||||
|
||||
def assertGolden(actual, golden_path):
|
||||
actual = actual.encode("utf-8")
|
||||
try:
|
||||
with open(golden_path, "rb") as golden_file:
|
||||
expected = golden_file.read()
|
||||
except FileNotFoundError:
|
||||
expected = None
|
||||
if actual != expected:
|
||||
_FAILED.add((actual, golden_path))
|
||||
if expected is None:
|
||||
raise unittest.TestCase.failureException(
|
||||
f'The golden file does not exist: {golden_path!r}\n'
|
||||
'Use "--diff" or "--accept" to create the golden file.')
|
||||
else:
|
||||
raise unittest.TestCase.failureException(
|
||||
f'Output does not match golden file: {golden_path!r}\n'
|
||||
'Use "--diff" or "--accept" to update the golden file.')
|
||||
|
||||
|
||||
def main():
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("-a", "--accept", action="store_true",
|
||||
dest="should_accept_actual")
|
||||
parser.add_option("-d", "--diff", action="store_true", dest="should_diff")
|
||||
options, args = parser.parse_args()
|
||||
# unitest.main doesn't expect these arguments, so remove them.
|
||||
for argument in ["-a", "--accept", "-d", "--diff"]:
|
||||
if argument in sys.argv:
|
||||
sys.argv.remove(argument)
|
||||
try:
|
||||
unittest.main()
|
||||
finally:
|
||||
if len(_FAILED) > 0:
|
||||
if options.should_accept_actual:
|
||||
_accept_actual(_FAILED)
|
||||
if options.should_diff:
|
||||
_show_differences(_FAILED)
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
#!/usr/bin/env python3.9
|
||||
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import shutil
|
||||
import socket
|
||||
import stat
|
||||
import subprocess
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
import lscolors
|
||||
|
||||
|
||||
class TempDirTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.temp_dir = tempfile.mkdtemp()
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.temp_dir)
|
||||
|
||||
|
||||
class ParseLsColorsTestCase(unittest.TestCase):
|
||||
|
||||
def test_parse_ls_colors(self):
|
||||
self.assertRaises(AssertionError, lscolors._parse_ls_colors, "")
|
||||
self.assertRaises(AssertionError, lscolors._parse_ls_colors, "::")
|
||||
self.assertEqual(lscolors._parse_ls_colors("*.awk=38;5;148;1"),
|
||||
{".awk": "38;5;148;1"})
|
||||
self.assertEqual(lscolors._parse_ls_colors("*.tar.gz=38;5;148;1"),
|
||||
{".tar.gz": "38;5;148;1"})
|
||||
self.assertEqual(
|
||||
lscolors._parse_ls_colors("*.awk=38;5;148;1:di=38;5;30"),
|
||||
{".awk": "38;5;148;1", "di": "38;5;30"})
|
||||
|
||||
|
||||
class ColorKeyForFileTestCase(TempDirTestCase):
|
||||
|
||||
COLOR_CODES = {lscolors.OTHER_WRITABLE_KEY: "other writable",
|
||||
lscolors.EXECUTABLE_KEY: "executable",
|
||||
lscolors.ORPHAN_KEY: "orphan",
|
||||
lscolors.SETGUID_KEY: "setguid",
|
||||
lscolors.SETUID_KEY: "setuid",
|
||||
lscolors.STICKY_KEY: "sticky",
|
||||
lscolors.STICKY_OTHER_WRITABLE_KEY: "sticky other writable",
|
||||
lscolors.MULTI_HARDLINK_KEY: "multi hardlink",
|
||||
lscolors.CHARACTER_DEVICE_KEY: "character device",
|
||||
lscolors.BLOCK_DEVICE_KEY: "block device"}
|
||||
|
||||
def test_color_key_for_path_without_extension(self):
|
||||
executable_path = os.path.join(self.temp_dir, "foo")
|
||||
open(executable_path, "w").close()
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(executable_path, self.COLOR_CODES),
|
||||
lscolors.FILE_KEY)
|
||||
|
||||
def test_color_key_for_path_with_extension(self):
|
||||
awk_path = os.path.join(self.temp_dir, "test.awk")
|
||||
open(awk_path, "w").close()
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(awk_path, self.COLOR_CODES),
|
||||
lscolors.FILE_KEY)
|
||||
|
||||
def test_color_key_for_path_with_double_extension(self):
|
||||
tar_gz_path = os.path.join(self.temp_dir, "test.tar.gz")
|
||||
open(tar_gz_path, "w").close()
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(tar_gz_path, self.COLOR_CODES),
|
||||
lscolors.FILE_KEY)
|
||||
|
||||
def test_color_code_for_directory(self):
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(self.temp_dir, self.COLOR_CODES),
|
||||
lscolors.DIRECTORY_KEY)
|
||||
|
||||
def test_color_code_for_directory_thats_other_writable(self):
|
||||
mode = os.stat(self.temp_dir).st_mode
|
||||
os.chmod(self.temp_dir, mode | stat.S_IWOTH)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(self.temp_dir, self.COLOR_CODES),
|
||||
lscolors.OTHER_WRITABLE_KEY)
|
||||
|
||||
def test_color_code_for_executable(self):
|
||||
executable_path = os.path.join(self.temp_dir, "a")
|
||||
open(executable_path, "w").close()
|
||||
os.chmod(executable_path, stat.S_IEXEC)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(executable_path, self.COLOR_CODES),
|
||||
lscolors.EXECUTABLE_KEY)
|
||||
|
||||
def test_color_code_for_executable_with_extension(self):
|
||||
executable_path = os.path.join(self.temp_dir, "a.awk")
|
||||
open(executable_path, "w").close()
|
||||
os.chmod(executable_path, stat.S_IEXEC)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(executable_path, self.COLOR_CODES),
|
||||
lscolors.EXECUTABLE_KEY)
|
||||
|
||||
def test_color_code_for_setguid(self):
|
||||
setguid_path = os.path.join(self.temp_dir, "a")
|
||||
open(setguid_path, "w").close()
|
||||
os.chmod(setguid_path, stat.S_ISGID)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(setguid_path, self.COLOR_CODES),
|
||||
lscolors.SETGUID_KEY)
|
||||
|
||||
def test_color_code_for_setuid(self):
|
||||
setuid_path = os.path.join(self.temp_dir, "a")
|
||||
open(setuid_path, "w").close()
|
||||
os.chmod(setuid_path, stat.S_ISUID)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(setuid_path, self.COLOR_CODES),
|
||||
lscolors.SETUID_KEY)
|
||||
|
||||
def test_color_code_for_broken_symlink(self):
|
||||
symlink_path = os.path.join(self.temp_dir, "b")
|
||||
os.symlink(os.path.join(self.temp_dir, "a"), symlink_path)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(symlink_path, self.COLOR_CODES),
|
||||
lscolors.ORPHAN_KEY)
|
||||
|
||||
def test_color_code_for_good_symlink(self):
|
||||
symlink_path = os.path.join(self.temp_dir, "b")
|
||||
awk_path = os.path.join(self.temp_dir, "test.awk")
|
||||
open(awk_path, "w").close()
|
||||
os.symlink(awk_path, symlink_path)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(symlink_path, self.COLOR_CODES),
|
||||
lscolors.FILE_KEY)
|
||||
|
||||
def test_color_code_for_pipe(self):
|
||||
pipe_path = os.path.join(self.temp_dir, "a")
|
||||
os.mkfifo(pipe_path)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(pipe_path, self.COLOR_CODES),
|
||||
lscolors.PIPE_KEY)
|
||||
|
||||
def test_color_code_for_character_device(self):
|
||||
character_device_path = "/dev/tty"
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(character_device_path,
|
||||
self.COLOR_CODES),
|
||||
lscolors.CHARACTER_DEVICE_KEY)
|
||||
|
||||
def test_color_code_for_sticky_directory(self):
|
||||
mode = os.stat(self.temp_dir).st_mode
|
||||
os.chmod(self.temp_dir, mode | stat.S_ISVTX)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(self.temp_dir, self.COLOR_CODES),
|
||||
lscolors.STICKY_KEY)
|
||||
|
||||
def test_color_code_for_sticky_and_other_writable(self):
|
||||
mode = os.stat(self.temp_dir).st_mode
|
||||
os.chmod(self.temp_dir, mode | stat.S_ISVTX | stat.S_IWOTH)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(self.temp_dir, self.COLOR_CODES),
|
||||
lscolors.STICKY_OTHER_WRITABLE_KEY)
|
||||
|
||||
def test_color_code_for_socket(self):
|
||||
socket_path = os.path.join(self.temp_dir, "socket")
|
||||
socket_ = socket.socket(socket.AF_UNIX)
|
||||
socket_.bind(socket_path)
|
||||
try:
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(socket_path, self.COLOR_CODES),
|
||||
lscolors.SOCKET_KEY)
|
||||
finally:
|
||||
socket_.close()
|
||||
|
||||
def test_color_code_for_missing_file(self):
|
||||
missing_path = os.path.join(self.temp_dir, "a")
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(missing_path, self.COLOR_CODES),
|
||||
lscolors.MISSING_KEY)
|
||||
|
||||
def test_color_code_for_multi_hardlink(self):
|
||||
a_path = os.path.join(self.temp_dir, "a")
|
||||
open(a_path, "w").close()
|
||||
b_path = os.path.join(self.temp_dir, "b")
|
||||
os.link(a_path, b_path)
|
||||
self.assertEqual(
|
||||
lscolors.color_key_for_path(a_path, self.COLOR_CODES),
|
||||
lscolors.MULTI_HARDLINK_KEY)
|
||||
|
||||
|
||||
class ColorCodeForFileTestCase(TempDirTestCase):
|
||||
|
||||
AWK_COLOR = "awk color"
|
||||
TAR_GZ_COLOR = "tar gz color"
|
||||
COLOR_CODES = {
|
||||
".awk": AWK_COLOR, ".tar.gz": TAR_GZ_COLOR}
|
||||
|
||||
def test_color_code_for_path_without_extension(self):
|
||||
file_path = os.path.join(self.temp_dir, "foo")
|
||||
open(file_path, "w").close()
|
||||
self.assertEqual(
|
||||
lscolors.color_code_for_path(file_path, {"fi": "file color"}),
|
||||
"file color")
|
||||
|
||||
def test_color_code_for_path_with_extension(self):
|
||||
awk_path = os.path.join(self.temp_dir, "test.awk")
|
||||
open(awk_path, "w").close()
|
||||
self.assertEqual(
|
||||
lscolors.color_code_for_path(awk_path, self.COLOR_CODES),
|
||||
self.AWK_COLOR)
|
||||
|
||||
def test_color_code_for_path_with_double_extension(self):
|
||||
tar_gz_path = os.path.join(self.temp_dir, "test.tar.gz")
|
||||
open(tar_gz_path, "w").close()
|
||||
self.assertEqual(
|
||||
lscolors.color_code_for_path(tar_gz_path, self.COLOR_CODES),
|
||||
self.TAR_GZ_COLOR)
|
||||
|
||||
|
||||
def _parse_ls_line(line):
|
||||
parts = line.split("\x1b[")
|
||||
if len(parts) == 1:
|
||||
return (None, line)
|
||||
for part in parts:
|
||||
end_color_code = part.find("m")
|
||||
if end_color_code < (len(part) - 1):
|
||||
return tuple(part.split("m", 1))
|
||||
|
||||
|
||||
class ParseLsLineTestCase(unittest.TestCase):
|
||||
|
||||
def test_parse_ls_line(self):
|
||||
self.assertEqual(_parse_ls_line(
|
||||
"\x1b[0m\x1b[38;5;254m\x1b[m\x1b[38;5;30mhello\x1b[0m\n"),
|
||||
("38;5;30", "hello"))
|
||||
|
||||
|
||||
def test_against_ls(root_path, environment):
|
||||
process = subprocess.run(
|
||||
["ls", "--color=always", "-R", root_path],
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=environment)
|
||||
color_codes = lscolors.get_color_codes(environment)
|
||||
for line in process.stdout.splitlines():
|
||||
line = line.strip()
|
||||
if line == "":
|
||||
continue
|
||||
if line.endswith(":"):
|
||||
current_directory = line[:-1]
|
||||
continue
|
||||
ls_color_code, filename = _parse_ls_line(line)
|
||||
path = os.path.join(current_directory, filename)
|
||||
if os.path.exists(path): # Some paths are already gone. e.g. in /proc
|
||||
color_code = lscolors.color_code_for_path(path, color_codes)
|
||||
if color_code != ls_color_code:
|
||||
print(path, repr(color_code), repr(ls_color_code))
|
||||
|
||||
|
||||
RICH_COLOR_CODES = (
|
||||
"bd=38;5;68:ca=38;5;17:cd=38;5;113;1:di=38;5;30:do=38;5;127:"
|
||||
"ex=38;5;166;1:pi=38;5;126:fi=38;5;253:ln=target:mh=38;5;220;1:"
|
||||
"no=38;5;254:or=48;5;196;38;5;232;1:ow=38;5;33;1:sg=38;5;137;1:"
|
||||
"su=38;5;137:so=38;5;197:st=48;5;235;38;5;118;1:tw=48;5;235;38;5;139;1:"
|
||||
"*.BAT=38;5;108:*.PL=38;5;160:*.asm=38;5;240;1:*.awk=38;5;148;1:"
|
||||
"*.bash=38;5;173:*.bat=38;5;108:*.c=38;5;110:*.cfg=1:*.coffee=38;5;94;1:"
|
||||
"*.conf=1:*.cpp=38;5;24;1:*.cs=38;5;74;1:*.css=38;5;91:*.csv=38;5;78:"
|
||||
"*.diff=48;5;197;38;5;232:*.enc=38;5;192;3")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
# root_path = "/"
|
||||
# test_against_ls(root_path, {"LS_COLORS": RICH_COLOR_CODES})
|
||||
# test_against_ls(root_path, {}) # Test using default colors
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
#!/usr/bin/env python3.9
|
||||
|
||||
|
||||
import pickle
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
import eris.paged_list as paged_list
|
||||
|
||||
|
||||
class PagedListTestCase(unittest.TestCase):
|
||||
|
||||
def test_batch(self):
|
||||
self.assertEqual(list(paged_list.batch(iter([3,4,5,6,7]), 2)),
|
||||
[[3, 4], [5, 6], [7]])
|
||||
|
||||
def test_getitem(self):
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
list_ = paged_list.PagedList([3, 4, 5, 6], temp_dir, 4, 2)
|
||||
self.assertEqual(list_[1], 4)
|
||||
self.assertEqual(list_[1:3], [4, 5])
|
||||
self.assertEqual(list_[0:4], [3, 4, 5, 6])
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
list_ = paged_list.PagedList([3, 4, 5, 6], temp_dir, 2, 2)
|
||||
self.assertEqual(list_[1:3], [4, 5])
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
list_ = paged_list.PagedList([3, 4, 5, 6, 7, 8], temp_dir, 2, 2)
|
||||
self.assertEqual(list_[1:5], [4, 5, 6, 7])
|
||||
self.assertEqual(list_[:2], [3, 4])
|
||||
self.assertEqual(list_[2:], [5, 6, 7, 8])
|
||||
self.assertEqual(list(list_), [3, 4, 5, 6, 7, 8])
|
||||
self.assertRaises(IndexError, list_.__getitem__, 6)
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
list_ = paged_list.PagedList([], temp_dir, 2, 2)
|
||||
self.assertRaises(IndexError, list_.__getitem__, 0)
|
||||
# self.assertEqual(list_[3:4], []) FIX
|
||||
|
||||
def test_pickling(self):
|
||||
with tempfile.TemporaryDirectory() as temp_dir:
|
||||
list_ = paged_list.PagedList([3, 4, 5], temp_dir, 2, 2)
|
||||
list_b = pickle.loads(pickle.dumps(list_))
|
||||
self.assertEqual(list_b[1], 4)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
@ -1,155 +0,0 @@
|
|||
#!/usr/bin/env python3.9
|
||||
|
||||
|
||||
import os
|
||||
import pickle
|
||||
import unittest
|
||||
|
||||
os.environ["TERM"] = "xterm-256color"
|
||||
|
||||
import fill3.terminal as terminal
|
||||
import termstr
|
||||
|
||||
|
||||
class CharStyleTests(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.style = termstr.CharStyle()
|
||||
|
||||
def test_default_char_style(self):
|
||||
self.assertEqual(self.style.fg_color, termstr.Color.white)
|
||||
self.assertEqual(self.style.bg_color, termstr.Color.black)
|
||||
self.assertEqual(self.style.is_bold, False)
|
||||
self.assertEqual(self.style.is_underlined, False)
|
||||
|
||||
def test_pickle_char_style(self):
|
||||
style = termstr.CharStyle()
|
||||
loaded_style = pickle.loads(pickle.dumps(style))
|
||||
self.assertEqual(style, loaded_style)
|
||||
self.assertTrue(style is loaded_style)
|
||||
|
||||
def test_repr(self):
|
||||
self.assertEqual(repr(self.style),
|
||||
"<CharStyle: fg:(255, 255, 255) bg:(0, 0, 0) attr:>")
|
||||
|
||||
def test_code_for_term(self):
|
||||
self.assertEqual(self.style.code_for_term,
|
||||
"\x1b[m\x1b[38;2;255;255;255m\x1b[48;2;0;0;0m")
|
||||
|
||||
|
||||
class TermStrTests(unittest.TestCase):
|
||||
|
||||
def test_termstr(self):
|
||||
foo = termstr.TermStr("foo")
|
||||
foobar = termstr.TermStr("foobar")
|
||||
bold_style = termstr.CharStyle(3, 5, is_bold=True)
|
||||
foo_bold = termstr.TermStr("foo", bold_style)
|
||||
self.assertEqual(repr(foo_bold), "<TermStr: 'foo'>")
|
||||
self.assertEqual(foo + "bar", termstr.TermStr("foobar"))
|
||||
self.assertEqual(foo + termstr.TermStr("bar"),
|
||||
termstr.TermStr("foobar"))
|
||||
self.assertEqual("bar" + foo, termstr.TermStr("barfoo"))
|
||||
self.assertFalse(foo == foo_bold)
|
||||
self.assertFalse(foo_bold == foo)
|
||||
self.assertFalse("foo" == foo_bold)
|
||||
self.assertTrue("food" != foo_bold)
|
||||
self.assertFalse(foo != foo)
|
||||
self.assertTrue(foo != foo_bold)
|
||||
self.assertFalse(foo_bold == "foo")
|
||||
self.assertTrue(foo_bold != "food")
|
||||
self.assertEqual(foobar[:2], termstr.TermStr("fo"))
|
||||
self.assertEqual(foobar[2:], termstr.TermStr("obar"))
|
||||
self.assertEqual(foobar[::2], termstr.TermStr("foa"))
|
||||
self.assertEqual(foobar[3], termstr.TermStr("b"))
|
||||
self.assertEqual(foo_bold[1], termstr.TermStr("o", bold_style))
|
||||
self.assertTrue(foo.startswith("fo"))
|
||||
self.assertTrue(foo.endswith("oo"))
|
||||
self.assertEqual(foo.index("o"), 1)
|
||||
self.assertTrue("fo" in foo)
|
||||
self.assertEqual(foo.find("oo"), 1)
|
||||
self.assertEqual(termstr.TermStr("fo") * 2, termstr.TermStr("fofo"))
|
||||
self.assertEqual(2 * termstr.TermStr("fo"), termstr.TermStr("fofo"))
|
||||
self.assertEqual(foobar.split("b"), [termstr.TermStr("foo"),
|
||||
termstr.TermStr("ar")])
|
||||
self.assertEqual(foo.join(["C", "D"]), termstr.TermStr("CfooD"))
|
||||
self.assertEqual(foo.join(["C", termstr.TermStr("D")]),
|
||||
termstr.TermStr("CfooD"))
|
||||
self.assertEqual(foo.join([]), termstr.TermStr(""))
|
||||
self.assertEqual(foo.join(["C"]), termstr.TermStr("C"))
|
||||
bar = termstr.TermStr("bar", bold_style)
|
||||
self.assertEqual((foo + "\n" + bar).splitlines(), [foo, bar])
|
||||
self.assertEqual((foo + "\r\n" + bar).splitlines(), [foo, bar])
|
||||
self.assertEqual((foo + "\n" + bar).splitlines(keepends=True),
|
||||
[termstr.TermStr("foo\n"), bar])
|
||||
self.assertEqual((foo + "\r\n" + bar).splitlines(keepends=True),
|
||||
[termstr.TermStr("foo\r\n"), bar])
|
||||
self.assertEqual(foo.ljust(5), foo + termstr.TermStr(" "))
|
||||
self.assertEqual(foo.rjust(5), termstr.TermStr(" ") + foo)
|
||||
self.assertEqual(termstr.TermStr("FOO").lower(), foo)
|
||||
self.assertEqual(termstr.TermStr("FOO", bold_style).lower(), foo_bold)
|
||||
self.assertEqual(termstr.TermStr("FOO").swapcase(), foo)
|
||||
self.assertEqual(termstr.TermStr("FOO", bold_style).swapcase(), foo_bold)
|
||||
phrase = termstr.TermStr("foo bar")
|
||||
self.assertEqual(phrase.title(), termstr.TermStr("Foo Bar"))
|
||||
self.assertEqual(phrase.capitalize(), termstr.TermStr("Foo bar"))
|
||||
self.assertEqual(foo.upper(), termstr.TermStr("FOO"))
|
||||
self.assertEqual(foo_bold.center(0), foo_bold)
|
||||
self.assertEqual(foo_bold.center(7),
|
||||
termstr.TermStr(" ") + foo_bold + termstr.TermStr(" "))
|
||||
self.assertEqual(foo_bold.ljust(0), foo_bold)
|
||||
self.assertEqual(foo_bold.ljust(5), foo_bold + termstr.TermStr(" "))
|
||||
self.assertEqual(foo_bold.rjust(0), foo_bold)
|
||||
self.assertEqual(foo_bold.rjust(5), termstr.TermStr(" ") + foo_bold)
|
||||
baz = termstr.TermStr("b👋z")
|
||||
self.assertEqual(len(baz), 4)
|
||||
self.assertEqual(baz[3:], termstr.TermStr("z"))
|
||||
self.assertEqual(baz[:2], termstr.TermStr("b "))
|
||||
self.assertEqual(baz[2:], termstr.TermStr(" z"))
|
||||
|
||||
def test_from_term(self):
|
||||
def test_round_trip(term_str):
|
||||
self.assertEqual(termstr.TermStr.from_term(str(term_str)), term_str)
|
||||
|
||||
test_round_trip(termstr.TermStr("foo"))
|
||||
test_round_trip(termstr.TermStr("foo").bold())
|
||||
test_round_trip(termstr.TermStr("foo").underline())
|
||||
test_round_trip(termstr.TermStr("foo").italic())
|
||||
test_round_trip(termstr.TermStr("foo").fg_color(termstr.Color.red))
|
||||
test_round_trip(termstr.TermStr("foo").fg_color(termstr.Color.red).\
|
||||
bg_color(termstr.Color.green))
|
||||
test_round_trip(termstr.TermStr("foo").fg_color(1))
|
||||
test_round_trip(termstr.TermStr("foo").bg_color(10))
|
||||
self.assertEqual(
|
||||
termstr.TermStr.from_term("foo"), termstr.TermStr("foo"))
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[33mfoo"),
|
||||
termstr.TermStr("foo").fg_color(3))
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[45mfoo"),
|
||||
termstr.TermStr("foo").bg_color(5))
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[45mfoo" +
|
||||
terminal.ESC + "[mbar"),
|
||||
termstr.TermStr("foo").bg_color(5) +
|
||||
termstr.TermStr("bar"))
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[45mfoo" +
|
||||
terminal.ESC + "[0mbar"),
|
||||
termstr.TermStr("foo").bg_color(5) +
|
||||
termstr.TermStr("bar"))
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[1;3mfoo"),
|
||||
termstr.TermStr("foo").bold().italic())
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[01mfoo"),
|
||||
termstr.TermStr("foo").bold())
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[Kfoo"),
|
||||
termstr.TermStr("foo"))
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[95mfoo"),
|
||||
termstr.TermStr("foo").fg_color(13))
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "[105mfoo"),
|
||||
termstr.TermStr("foo").bg_color(13))
|
||||
self.assertEqual(termstr.TermStr.from_term(terminal.ESC + "(B" +
|
||||
terminal.ESC + "[mfoo"),
|
||||
termstr.TermStr("foo"))
|
||||
self.assertEqual(
|
||||
termstr.TermStr.from_term(terminal.ESC + "39;49;00mfoo"),
|
||||
termstr.TermStr("foo"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
@ -1,182 +0,0 @@
|
|||
#!/usr/bin/env python3.9
|
||||
|
||||
|
||||
import contextlib
|
||||
import os
|
||||
import shutil
|
||||
import unittest
|
||||
import unittest.mock
|
||||
|
||||
os.environ["TERM"] = "xterm-256color"
|
||||
|
||||
import golden
|
||||
import eris.tools as tools
|
||||
import fill3
|
||||
|
||||
|
||||
os.environ["TZ"] = "GMT"
|
||||
ERIS_ROOT = os.path.dirname(__file__)
|
||||
|
||||
|
||||
class ExecutablesTestCase(unittest.TestCase):
|
||||
|
||||
def test_executables_exist_in_path(self):
|
||||
# Tools not in ubuntu:
|
||||
exceptions = {tools.wasm_validate, tools.wasm_objdump}
|
||||
for tool in tools.tools_all() - exceptions:
|
||||
if hasattr(tool, "executables"):
|
||||
for executable in tool.executables:
|
||||
with self.subTest(executable=executable, tool=tool):
|
||||
self.assertTrue(shutil.which(executable))
|
||||
|
||||
|
||||
def widget_to_string(widget):
|
||||
appearance = widget.appearance_min()
|
||||
return str(fill3.join("\n", appearance))
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def chdir(path):
|
||||
old_cwd = os.getcwd()
|
||||
os.chdir(path)
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
os.chdir(old_cwd)
|
||||
|
||||
|
||||
def result_path(tool, input_filename):
|
||||
filename = tool.__name__ + "-" + input_filename.replace(".", "_")
|
||||
return os.path.join(ERIS_ROOT, "golden-files", "results", filename)
|
||||
|
||||
|
||||
def run_tool(tool, input_filename):
|
||||
with chdir(os.path.join(ERIS_ROOT, "golden-files")):
|
||||
return tool(os.path.join(".", "input", input_filename))
|
||||
|
||||
|
||||
class ToolsTestCase(unittest.TestCase):
|
||||
|
||||
def _test_tool(self, tool, sub_tests):
|
||||
for input_filename, expected_status in sub_tests:
|
||||
with self.subTest(input_filename=input_filename):
|
||||
status, result = run_tool(tool, input_filename)
|
||||
golden_path = result_path(tool, input_filename)
|
||||
golden.assertGolden(str(result), golden_path)
|
||||
self.assertEqual(status, expected_status)
|
||||
|
||||
def test_metadata(self):
|
||||
mock_stat_result = unittest.mock.Mock(
|
||||
st_mode=0o755, st_mtime=1454282045, st_ctime=1454282045,
|
||||
st_atime=1454282047, st_size=12, st_uid=1111, st_gid=1111,
|
||||
st_nlink=2)
|
||||
mock_pw_entry = unittest.mock.Mock(pw_name="foo")
|
||||
with unittest.mock.patch.object(os, "stat",
|
||||
return_value=mock_stat_result):
|
||||
with unittest.mock.patch.object(tools.pwd, "getpwuid",
|
||||
return_value=mock_pw_entry):
|
||||
self._test_tool(tools.metadata,
|
||||
[("hi3.py", tools.Status.ok)])
|
||||
|
||||
def test_contents(self):
|
||||
self._test_tool(tools.contents, [("hi3.py", tools.Status.ok)])
|
||||
|
||||
HI_OK = [("hi3.py", tools.Status.ok)]
|
||||
|
||||
def test_python_syntax(self):
|
||||
self._test_tool(tools.python_syntax, self.HI_OK)
|
||||
|
||||
HI_OK = [("hi3.py", tools.Status.ok)]
|
||||
|
||||
def test_mypy(self):
|
||||
self._test_tool(tools.mypy, self.HI_OK)
|
||||
|
||||
def test_pycodestyle(self):
|
||||
self._test_tool(tools.pycodestyle, self.HI_OK)
|
||||
|
||||
def test_pyflakes(self):
|
||||
self._test_tool(tools.pyflakes, self.HI_OK)
|
||||
|
||||
def test_pylint(self):
|
||||
self._test_tool(tools.pylint, self.HI_OK)
|
||||
|
||||
def test_python_gut(self):
|
||||
self._test_tool(tools.python_gut, self.HI_OK)
|
||||
|
||||
def test_python_modulefinder(self):
|
||||
self._test_tool(tools.python_modulefinder, self.HI_OK)
|
||||
|
||||
def test_python_mccabe(self):
|
||||
self._test_tool(tools.python_mccabe, self.HI_OK)
|
||||
|
||||
def test_perl_syntax(self):
|
||||
self._test_tool(tools.perl_syntax,
|
||||
[("perl.pl", tools.Status.ok)])
|
||||
|
||||
def test_c_syntax_gcc(self):
|
||||
self._test_tool(tools.c_syntax_gcc, [("hello.c", tools.Status.ok)])
|
||||
|
||||
def test_objdump_headers(self):
|
||||
self._test_tool(tools.objdump_headers,
|
||||
[("rotatingtree.o", tools.Status.ok)])
|
||||
|
||||
def test_objdump_disassemble(self):
|
||||
self._test_tool(tools.objdump_disassemble,
|
||||
[("rotatingtree.o", tools.Status.problem)])
|
||||
|
||||
def test_readelf(self):
|
||||
self._test_tool(tools.readelf, [("rotatingtree.o", tools.Status.ok)])
|
||||
|
||||
def test_zipinfo(self):
|
||||
self._test_tool(tools.zipinfo, [("hi.zip", tools.Status.ok)])
|
||||
|
||||
def test_nm(self):
|
||||
self._test_tool(tools.nm, [("libieee.a", tools.Status.ok),
|
||||
("libpcprofile.so", tools.Status.ok)])
|
||||
|
||||
def test_pdf2txt(self):
|
||||
self._test_tool(tools.pdf2txt, [("standard.pdf", tools.Status.ok)])
|
||||
|
||||
def test_html_syntax(self):
|
||||
self._test_tool(tools.html_syntax, [("hi.html", tools.Status.problem)])
|
||||
|
||||
def test_html2text(self):
|
||||
self._test_tool(tools.html2text, [("hi.html", tools.Status.ok)])
|
||||
|
||||
def test_cpp_syntax_gcc(self):
|
||||
self._test_tool(tools.cpp_syntax_gcc, [("hello.cpp", tools.Status.ok)])
|
||||
|
||||
def test_php8_syntax(self):
|
||||
self._test_tool(tools.php8_syntax, [("root.php", tools.Status.ok)])
|
||||
|
||||
def test_pil(self):
|
||||
for extension in ["png", "jpg", "gif", "bmp", "ppm", "tiff", "tga"]:
|
||||
self._test_tool(tools.pil, [("circle." + extension,
|
||||
tools.Status.ok)])
|
||||
|
||||
|
||||
class LruCacheWithEvictionTestCase(unittest.TestCase):
|
||||
|
||||
def _assert_cache(self, func, hits, misses, current_size):
|
||||
cache_info = func.cache_info()
|
||||
self.assertEqual(cache_info.hits, hits)
|
||||
self.assertEqual(cache_info.misses, misses)
|
||||
self.assertEqual(cache_info.currsize, current_size)
|
||||
|
||||
def test_lru_cache_with_eviction(self):
|
||||
@tools.lru_cache_with_eviction()
|
||||
def a(foo):
|
||||
return foo
|
||||
self._assert_cache(a, 0, 0, 0)
|
||||
self.assertEqual(a(1), 1)
|
||||
self._assert_cache(a, 0, 1, 1)
|
||||
a(1)
|
||||
self._assert_cache(a, 1, 1, 1)
|
||||
a.evict(1)
|
||||
self._assert_cache(a, 1, 1, 1)
|
||||
a(1)
|
||||
self._assert_cache(a, 1, 2, 2)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
golden.main()
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
#!/usr/bin/env python3.9
|
||||
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
import eris.tools as tools
|
||||
import eris.worker as worker
|
||||
|
||||
|
||||
class WorkerTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.temp_dir = tempfile.mkdtemp()
|
||||
self.original_working_dir = os.getcwd()
|
||||
os.chdir(self.temp_dir)
|
||||
os.mkdir(tools.CACHE_PATH)
|
||||
open("foo", "w").close()
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.temp_dir)
|
||||
os.chdir(self.original_working_dir)
|
||||
|
||||
def test_run_job(self):
|
||||
loop = asyncio.get_event_loop()
|
||||
compression = "none"
|
||||
worker_ = worker.Worker(False, compression)
|
||||
loop.run_until_complete(worker_.create_process())
|
||||
worker_.process.stdin.write(f"{compression}\n".encode("utf-8"))
|
||||
future = worker_.run_tool("foo", tools.metadata)
|
||||
status = loop.run_until_complete(future)
|
||||
self.assertEqual(status, tools.Status.ok)
|
||||
result_path = os.path.join(tools.CACHE_PATH, "foo-metadata")
|
||||
self.assertTrue(os.path.exists(result_path))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue