amp 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.hgignore +26 -0
- data/AUTHORS +2 -0
- data/History.txt +6 -0
- data/LICENSE +37 -0
- data/MANIFESTO +7 -0
- data/Manifest.txt +294 -0
- data/README.md +129 -0
- data/Rakefile +102 -0
- data/SCHEDULE.markdown +12 -0
- data/STYLE +27 -0
- data/TODO.markdown +149 -0
- data/ampfile.rb +47 -0
- data/bin/amp +30 -0
- data/bin/amp1.9 +30 -0
- data/ext/amp/bz2/README.txt +39 -0
- data/ext/amp/bz2/bz2.c +1582 -0
- data/ext/amp/bz2/extconf.rb +77 -0
- data/ext/amp/bz2/mkmf.log +29 -0
- data/ext/amp/mercurial_patch/extconf.rb +5 -0
- data/ext/amp/mercurial_patch/mpatch.c +405 -0
- data/ext/amp/priority_queue/extconf.rb +5 -0
- data/ext/amp/priority_queue/priority_queue.c +947 -0
- data/ext/amp/support/extconf.rb +5 -0
- data/ext/amp/support/support.c +250 -0
- data/lib/amp.rb +200 -0
- data/lib/amp/commands/command.rb +507 -0
- data/lib/amp/commands/command_support.rb +137 -0
- data/lib/amp/commands/commands/config.rb +143 -0
- data/lib/amp/commands/commands/help.rb +29 -0
- data/lib/amp/commands/commands/init.rb +10 -0
- data/lib/amp/commands/commands/templates.rb +137 -0
- data/lib/amp/commands/commands/version.rb +7 -0
- data/lib/amp/commands/commands/workflow.rb +28 -0
- data/lib/amp/commands/commands/workflows/git/add.rb +65 -0
- data/lib/amp/commands/commands/workflows/git/copy.rb +27 -0
- data/lib/amp/commands/commands/workflows/git/mv.rb +23 -0
- data/lib/amp/commands/commands/workflows/git/rm.rb +60 -0
- data/lib/amp/commands/commands/workflows/hg/add.rb +53 -0
- data/lib/amp/commands/commands/workflows/hg/addremove.rb +86 -0
- data/lib/amp/commands/commands/workflows/hg/annotate.rb +46 -0
- data/lib/amp/commands/commands/workflows/hg/archive.rb +126 -0
- data/lib/amp/commands/commands/workflows/hg/branch.rb +28 -0
- data/lib/amp/commands/commands/workflows/hg/branches.rb +30 -0
- data/lib/amp/commands/commands/workflows/hg/bundle.rb +115 -0
- data/lib/amp/commands/commands/workflows/hg/clone.rb +95 -0
- data/lib/amp/commands/commands/workflows/hg/commit.rb +42 -0
- data/lib/amp/commands/commands/workflows/hg/copy.rb +31 -0
- data/lib/amp/commands/commands/workflows/hg/debug/dirstate.rb +32 -0
- data/lib/amp/commands/commands/workflows/hg/debug/index.rb +36 -0
- data/lib/amp/commands/commands/workflows/hg/default.rb +9 -0
- data/lib/amp/commands/commands/workflows/hg/diff.rb +30 -0
- data/lib/amp/commands/commands/workflows/hg/forget.rb +11 -0
- data/lib/amp/commands/commands/workflows/hg/heads.rb +25 -0
- data/lib/amp/commands/commands/workflows/hg/identify.rb +23 -0
- data/lib/amp/commands/commands/workflows/hg/import.rb +135 -0
- data/lib/amp/commands/commands/workflows/hg/incoming.rb +85 -0
- data/lib/amp/commands/commands/workflows/hg/info.rb +18 -0
- data/lib/amp/commands/commands/workflows/hg/log.rb +21 -0
- data/lib/amp/commands/commands/workflows/hg/manifest.rb +13 -0
- data/lib/amp/commands/commands/workflows/hg/merge.rb +53 -0
- data/lib/amp/commands/commands/workflows/hg/move.rb +28 -0
- data/lib/amp/commands/commands/workflows/hg/outgoing.rb +61 -0
- data/lib/amp/commands/commands/workflows/hg/pull.rb +74 -0
- data/lib/amp/commands/commands/workflows/hg/push.rb +20 -0
- data/lib/amp/commands/commands/workflows/hg/remove.rb +45 -0
- data/lib/amp/commands/commands/workflows/hg/resolve.rb +83 -0
- data/lib/amp/commands/commands/workflows/hg/revert.rb +53 -0
- data/lib/amp/commands/commands/workflows/hg/root.rb +13 -0
- data/lib/amp/commands/commands/workflows/hg/serve.rb +38 -0
- data/lib/amp/commands/commands/workflows/hg/status.rb +116 -0
- data/lib/amp/commands/commands/workflows/hg/tag.rb +69 -0
- data/lib/amp/commands/commands/workflows/hg/tags.rb +27 -0
- data/lib/amp/commands/commands/workflows/hg/tip.rb +13 -0
- data/lib/amp/commands/commands/workflows/hg/update.rb +27 -0
- data/lib/amp/commands/commands/workflows/hg/verify.rb +9 -0
- data/lib/amp/commands/commands/workflows/hg/view.rb +36 -0
- data/lib/amp/commands/dispatch.rb +181 -0
- data/lib/amp/commands/hooks.rb +81 -0
- data/lib/amp/dependencies/amp_support.rb +1 -0
- data/lib/amp/dependencies/amp_support/ruby_amp_support.rb +103 -0
- data/lib/amp/dependencies/minitar.rb +979 -0
- data/lib/amp/dependencies/priority_queue.rb +18 -0
- data/lib/amp/dependencies/priority_queue/c_priority_queue.rb +1 -0
- data/lib/amp/dependencies/priority_queue/poor_priority_queue.rb +46 -0
- data/lib/amp/dependencies/priority_queue/ruby_priority_queue.rb +525 -0
- data/lib/amp/dependencies/python_config.rb +211 -0
- data/lib/amp/dependencies/trollop.rb +713 -0
- data/lib/amp/dependencies/zip/ioextras.rb +155 -0
- data/lib/amp/dependencies/zip/stdrubyext.rb +111 -0
- data/lib/amp/dependencies/zip/tempfile_bugfixed.rb +186 -0
- data/lib/amp/dependencies/zip/zip.rb +1850 -0
- data/lib/amp/dependencies/zip/zipfilesystem.rb +609 -0
- data/lib/amp/dependencies/zip/ziprequire.rb +90 -0
- data/lib/amp/encoding/base85.rb +97 -0
- data/lib/amp/encoding/binary_diff.rb +82 -0
- data/lib/amp/encoding/difflib.rb +166 -0
- data/lib/amp/encoding/mercurial_diff.rb +378 -0
- data/lib/amp/encoding/mercurial_patch.rb +1 -0
- data/lib/amp/encoding/patch.rb +292 -0
- data/lib/amp/encoding/pure_ruby/ruby_mercurial_patch.rb +123 -0
- data/lib/amp/extensions/ditz.rb +41 -0
- data/lib/amp/extensions/lighthouse.rb +167 -0
- data/lib/amp/graphs/ancestor.rb +147 -0
- data/lib/amp/graphs/copies.rb +261 -0
- data/lib/amp/merges/merge_state.rb +164 -0
- data/lib/amp/merges/merge_ui.rb +322 -0
- data/lib/amp/merges/simple_merge.rb +450 -0
- data/lib/amp/profiling_hacks.rb +36 -0
- data/lib/amp/repository/branch_manager.rb +234 -0
- data/lib/amp/repository/dir_state.rb +950 -0
- data/lib/amp/repository/journal.rb +203 -0
- data/lib/amp/repository/lock.rb +207 -0
- data/lib/amp/repository/repositories/bundle_repository.rb +214 -0
- data/lib/amp/repository/repositories/http_repository.rb +377 -0
- data/lib/amp/repository/repositories/local_repository.rb +2661 -0
- data/lib/amp/repository/repository.rb +94 -0
- data/lib/amp/repository/store.rb +485 -0
- data/lib/amp/repository/tag_manager.rb +319 -0
- data/lib/amp/repository/updatable.rb +532 -0
- data/lib/amp/repository/verification.rb +431 -0
- data/lib/amp/repository/versioned_file.rb +475 -0
- data/lib/amp/revlogs/bundle_revlogs.rb +246 -0
- data/lib/amp/revlogs/changegroup.rb +217 -0
- data/lib/amp/revlogs/changelog.rb +338 -0
- data/lib/amp/revlogs/changeset.rb +521 -0
- data/lib/amp/revlogs/file_log.rb +165 -0
- data/lib/amp/revlogs/index.rb +493 -0
- data/lib/amp/revlogs/manifest.rb +195 -0
- data/lib/amp/revlogs/node.rb +18 -0
- data/lib/amp/revlogs/revlog.rb +1032 -0
- data/lib/amp/revlogs/revlog_support.rb +126 -0
- data/lib/amp/server/amp_user.rb +44 -0
- data/lib/amp/server/extension/amp_extension.rb +396 -0
- data/lib/amp/server/extension/authorization.rb +201 -0
- data/lib/amp/server/fancy_http_server.rb +252 -0
- data/lib/amp/server/fancy_views/_browser.haml +28 -0
- data/lib/amp/server/fancy_views/_diff_file.haml +13 -0
- data/lib/amp/server/fancy_views/_navbar.haml +17 -0
- data/lib/amp/server/fancy_views/changeset.haml +31 -0
- data/lib/amp/server/fancy_views/commits.haml +32 -0
- data/lib/amp/server/fancy_views/file.haml +35 -0
- data/lib/amp/server/fancy_views/file_diff.haml +23 -0
- data/lib/amp/server/fancy_views/harshcss/all_hallows_eve.css +72 -0
- data/lib/amp/server/fancy_views/harshcss/amy.css +147 -0
- data/lib/amp/server/fancy_views/harshcss/twilight.css +138 -0
- data/lib/amp/server/fancy_views/stylesheet.sass +175 -0
- data/lib/amp/server/http_server.rb +140 -0
- data/lib/amp/server/repo_user_management.rb +287 -0
- data/lib/amp/support/amp_config.rb +164 -0
- data/lib/amp/support/amp_ui.rb +287 -0
- data/lib/amp/support/docs.rb +54 -0
- data/lib/amp/support/generator.rb +78 -0
- data/lib/amp/support/ignore.rb +144 -0
- data/lib/amp/support/loaders.rb +93 -0
- data/lib/amp/support/logger.rb +103 -0
- data/lib/amp/support/match.rb +151 -0
- data/lib/amp/support/multi_io.rb +87 -0
- data/lib/amp/support/openers.rb +121 -0
- data/lib/amp/support/ruby_19_compatibility.rb +66 -0
- data/lib/amp/support/support.rb +1095 -0
- data/lib/amp/templates/blank.commit.erb +23 -0
- data/lib/amp/templates/blank.log.erb +18 -0
- data/lib/amp/templates/default.commit.erb +23 -0
- data/lib/amp/templates/default.log.erb +26 -0
- data/lib/amp/templates/template.rb +165 -0
- data/site/Rakefile +24 -0
- data/site/src/about/ampfile.haml +57 -0
- data/site/src/about/commands.haml +106 -0
- data/site/src/about/index.haml +33 -0
- data/site/src/about/performance.haml +31 -0
- data/site/src/about/workflows.haml +34 -0
- data/site/src/contribute/index.haml +65 -0
- data/site/src/contribute/style.haml +297 -0
- data/site/src/css/active4d.css +114 -0
- data/site/src/css/all_hallows_eve.css +72 -0
- data/site/src/css/all_themes.css +3299 -0
- data/site/src/css/amp.css +260 -0
- data/site/src/css/amy.css +147 -0
- data/site/src/css/blackboard.css +88 -0
- data/site/src/css/brilliance_black.css +605 -0
- data/site/src/css/brilliance_dull.css +599 -0
- data/site/src/css/cobalt.css +149 -0
- data/site/src/css/cur_amp.css +185 -0
- data/site/src/css/dawn.css +121 -0
- data/site/src/css/eiffel.css +121 -0
- data/site/src/css/espresso_libre.css +109 -0
- data/site/src/css/idle.css +62 -0
- data/site/src/css/iplastic.css +80 -0
- data/site/src/css/lazy.css +73 -0
- data/site/src/css/mac_classic.css +123 -0
- data/site/src/css/magicwb_amiga.css +104 -0
- data/site/src/css/pastels_on_dark.css +188 -0
- data/site/src/css/reset.css +55 -0
- data/site/src/css/slush_poppies.css +85 -0
- data/site/src/css/spacecadet.css +51 -0
- data/site/src/css/sunburst.css +180 -0
- data/site/src/css/twilight.css +137 -0
- data/site/src/css/zenburnesque.css +91 -0
- data/site/src/get/index.haml +32 -0
- data/site/src/helpers.rb +121 -0
- data/site/src/images/amp_logo.png +0 -0
- data/site/src/images/carbonica.png +0 -0
- data/site/src/images/revolution.png +0 -0
- data/site/src/images/tab-bg.png +0 -0
- data/site/src/images/tab-sliding-left.png +0 -0
- data/site/src/images/tab-sliding-right.png +0 -0
- data/site/src/include/_footer.haml +22 -0
- data/site/src/include/_header.haml +17 -0
- data/site/src/index.haml +104 -0
- data/site/src/learn/index.haml +46 -0
- data/site/src/scripts/jquery-1.3.2.min.js +19 -0
- data/site/src/scripts/jquery.cookie.js +96 -0
- data/tasks/stats.rake +155 -0
- data/tasks/yard.rake +171 -0
- data/test/dirstate_tests/dirstate +0 -0
- data/test/dirstate_tests/hgrc +5 -0
- data/test/dirstate_tests/test_dir_state.rb +192 -0
- data/test/functional_tests/resources/.hgignore +2 -0
- data/test/functional_tests/resources/STYLE.txt +25 -0
- data/test/functional_tests/resources/command.rb +372 -0
- data/test/functional_tests/resources/commands/annotate.rb +57 -0
- data/test/functional_tests/resources/commands/experimental/lolcats.rb +17 -0
- data/test/functional_tests/resources/commands/heads.rb +22 -0
- data/test/functional_tests/resources/commands/manifest.rb +12 -0
- data/test/functional_tests/resources/commands/status.rb +90 -0
- data/test/functional_tests/resources/version2/.hgignore +5 -0
- data/test/functional_tests/resources/version2/STYLE.txt +25 -0
- data/test/functional_tests/resources/version2/command.rb +372 -0
- data/test/functional_tests/resources/version2/commands/annotate.rb +45 -0
- data/test/functional_tests/resources/version2/commands/experimental/lolcats.rb +17 -0
- data/test/functional_tests/resources/version2/commands/heads.rb +22 -0
- data/test/functional_tests/resources/version2/commands/manifest.rb +12 -0
- data/test/functional_tests/resources/version2/commands/status.rb +90 -0
- data/test/functional_tests/resources/version3/.hgignore +5 -0
- data/test/functional_tests/resources/version3/STYLE.txt +31 -0
- data/test/functional_tests/resources/version3/command.rb +376 -0
- data/test/functional_tests/resources/version3/commands/annotate.rb +45 -0
- data/test/functional_tests/resources/version3/commands/experimental/lolcats.rb +17 -0
- data/test/functional_tests/resources/version3/commands/heads.rb +22 -0
- data/test/functional_tests/resources/version3/commands/manifest.rb +12 -0
- data/test/functional_tests/resources/version3/commands/status.rb +90 -0
- data/test/functional_tests/resources/version4/.hgignore +5 -0
- data/test/functional_tests/resources/version4/STYLE.txt +31 -0
- data/test/functional_tests/resources/version4/command.rb +376 -0
- data/test/functional_tests/resources/version4/commands/experimental/lolcats.rb +17 -0
- data/test/functional_tests/resources/version4/commands/heads.rb +22 -0
- data/test/functional_tests/resources/version4/commands/manifest.rb +12 -0
- data/test/functional_tests/resources/version4/commands/stats.rb +25 -0
- data/test/functional_tests/resources/version4/commands/status.rb +90 -0
- data/test/functional_tests/resources/version5_1/.hgignore +5 -0
- data/test/functional_tests/resources/version5_1/STYLE.txt +2 -0
- data/test/functional_tests/resources/version5_1/command.rb +374 -0
- data/test/functional_tests/resources/version5_1/commands/experimental/lolcats.rb +17 -0
- data/test/functional_tests/resources/version5_1/commands/heads.rb +22 -0
- data/test/functional_tests/resources/version5_1/commands/manifest.rb +12 -0
- data/test/functional_tests/resources/version5_1/commands/stats.rb +25 -0
- data/test/functional_tests/resources/version5_1/commands/status.rb +90 -0
- data/test/functional_tests/resources/version5_2/.hgignore +5 -0
- data/test/functional_tests/resources/version5_2/STYLE.txt +14 -0
- data/test/functional_tests/resources/version5_2/command.rb +376 -0
- data/test/functional_tests/resources/version5_2/commands/experimental/lolcats.rb +17 -0
- data/test/functional_tests/resources/version5_2/commands/manifest.rb +12 -0
- data/test/functional_tests/resources/version5_2/commands/newz.rb +12 -0
- data/test/functional_tests/resources/version5_2/commands/stats.rb +25 -0
- data/test/functional_tests/resources/version5_2/commands/status.rb +90 -0
- data/test/functional_tests/test_functional.rb +604 -0
- data/test/localrepo_tests/test_local_repo.rb +121 -0
- data/test/localrepo_tests/testrepo.tar.gz +0 -0
- data/test/manifest_tests/00manifest.i +0 -0
- data/test/manifest_tests/test_manifest.rb +72 -0
- data/test/merge_tests/base.txt +10 -0
- data/test/merge_tests/expected.local.txt +16 -0
- data/test/merge_tests/local.txt +11 -0
- data/test/merge_tests/remote.txt +11 -0
- data/test/merge_tests/test_merge.rb +26 -0
- data/test/revlog_tests/00changelog.i +0 -0
- data/test/revlog_tests/revision_added_changelog.i +0 -0
- data/test/revlog_tests/test_adding_index.i +0 -0
- data/test/revlog_tests/test_revlog.rb +333 -0
- data/test/revlog_tests/testindex.i +0 -0
- data/test/store_tests/store.tar.gz +0 -0
- data/test/store_tests/test_fncache_store.rb +122 -0
- data/test/test_amp.rb +9 -0
- data/test/test_base85.rb +14 -0
- data/test/test_bdiff.rb +42 -0
- data/test/test_commands.rb +122 -0
- data/test/test_difflib.rb +50 -0
- data/test/test_helper.rb +15 -0
- data/test/test_journal.rb +29 -0
- data/test/test_match.rb +134 -0
- data/test/test_mdiff.rb +74 -0
- data/test/test_mpatch.rb +14 -0
- data/test/test_support.rb +24 -0
- metadata +385 -0
@@ -0,0 +1,121 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require 'fileutils'
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../../lib/amp"))
|
4
|
+
|
5
|
+
class TestLocalRepo < Test::Unit::TestCase
|
6
|
+
REPO_PATH = File.expand_path(File.join(File.dirname(__FILE__)))
|
7
|
+
EXISTING_REPO_PATH = File.expand_path(File.join(File.dirname(__FILE__), "testrepo"))
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@config = Amp::AmpConfig.new
|
11
|
+
@repo = Amp::Repositories::LocalRepository.new(EXISTING_REPO_PATH, false, @config)
|
12
|
+
end
|
13
|
+
|
14
|
+
def join(*args)
|
15
|
+
File.join(REPO_PATH, *args)
|
16
|
+
end
|
17
|
+
|
18
|
+
def hg_join(*args)
|
19
|
+
File.join(REPO_PATH, ".hg", *args)
|
20
|
+
end
|
21
|
+
|
22
|
+
def teardown
|
23
|
+
FileUtils.rm_rf join(".hg")
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_create_repo
|
27
|
+
Amp::Repositories::LocalRepository.new(REPO_PATH, true, @config)
|
28
|
+
assert File.directory?(join(".hg"))
|
29
|
+
assert File.exists?(hg_join("00changelog.i"))
|
30
|
+
assert File.exists?(hg_join("requires"))
|
31
|
+
assert File.directory?(hg_join("store"))
|
32
|
+
assert_file_contents hg_join("requires"),"revlogv1\nstore\nfncache\n"
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_open_existing_repo
|
36
|
+
assert_not_nil @repo
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_get_initial_changeset
|
40
|
+
changeset = @repo[0]
|
41
|
+
assert_equal Amp::Changeset, changeset.class
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_repo_size
|
45
|
+
assert_equal 4, @repo.size
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_initial_changeset_manifest
|
49
|
+
changeset = @repo[0]
|
50
|
+
# manifest check
|
51
|
+
expected_list = ["readme","silly/code"]
|
52
|
+
actual = []
|
53
|
+
changeset.each do |k,v|
|
54
|
+
actual << k
|
55
|
+
end
|
56
|
+
assert_equal expected_list.sort, actual.sort
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_initial_readme
|
60
|
+
changeset = @repo[0]
|
61
|
+
|
62
|
+
changeset.manifest.inspect # force load of manifest
|
63
|
+
|
64
|
+
file = changeset["readme"]
|
65
|
+
# data check on a file
|
66
|
+
expected_readme = "this is the readme. I hope you like it.\nAmp is "+
|
67
|
+
"totally sweet. We're gonna do awesome stuff.\nI hope "+
|
68
|
+
"you lik it.\n"
|
69
|
+
|
70
|
+
expected = expected_readme
|
71
|
+
actual = file.data
|
72
|
+
assert_equal expected, actual
|
73
|
+
|
74
|
+
expected = Zlib::Deflate.deflate(file.data).size
|
75
|
+
actual = file.size # compressed size
|
76
|
+
assert_equal expected, actual
|
77
|
+
|
78
|
+
assert_false file.cmp(expected_readme)
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_second_readme
|
82
|
+
expected_readme = "this is the readme. I hope you like it.\nAmp is "+
|
83
|
+
"totally sweet. We're gonna do awesome stuff.\nI hope "+
|
84
|
+
"you like it.\n" # typo fixed
|
85
|
+
changeset = @repo[1]
|
86
|
+
changeset.manifest # force load of manifest
|
87
|
+
file = changeset["readme"]
|
88
|
+
|
89
|
+
expected = expected_readme
|
90
|
+
actual = file.data
|
91
|
+
assert_equal expected, actual
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_status
|
95
|
+
|
96
|
+
actual = @repo.status(:ignored => true, :clean => true, :unknown => true,
|
97
|
+
:node_1 => @repo["."].node, :node_2 => nil)
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
modified = ["readme"]
|
102
|
+
clean = ["emptyfile", "fileididcopy", "silly/code", "silly/ignoredfile"]
|
103
|
+
ignored = ["silly/unknownfile"]
|
104
|
+
unknown = [".hgignore"]
|
105
|
+
added = []
|
106
|
+
deleted = []
|
107
|
+
removed = []
|
108
|
+
expected = { :modified => modified.sort,
|
109
|
+
:added => added.sort,
|
110
|
+
:removed => removed.sort,
|
111
|
+
:deleted => deleted.sort,
|
112
|
+
:unknown => unknown.sort,
|
113
|
+
:ignored => ignored.sort,
|
114
|
+
:clean => clean.sort ,
|
115
|
+
:delta => 19
|
116
|
+
}
|
117
|
+
|
118
|
+
assert_equal expected, actual
|
119
|
+
|
120
|
+
end
|
121
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../../lib/amp"))
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
class TestManifest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
opener = Amp::Opener.new(File.dirname(__FILE__))
|
10
|
+
opener.default = :open_file
|
11
|
+
@manifest = Amp::Manifest.new(opener)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_load_manifest
|
15
|
+
assert_not_nil @manifest
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_manifest_read_delta
|
19
|
+
result = @manifest.read_delta(@manifest.node(8))
|
20
|
+
expected = {"test/test_bdiff.rb" => "P\xa1\x85\x8b\xe6\xc6N\xb6\xf3\x92MuIv\xe1|u\x03\xadM",
|
21
|
+
"test/test_mpatch.rb"=> "\xd2c\xcf\x03\xea\x86\x9b:\xa7\xba\xd8\x80\xcf\xad\x7f\xed\xfc\x07\xd9\xd6"}
|
22
|
+
assert_equal expected, result
|
23
|
+
result = @manifest.read_delta(@manifest.node(21))
|
24
|
+
expected = {"lib/revlogs/revlog.rb" => ".\x9e~-\xa6y~\xb8\xd9\xb3\xd5\xe8\xd2tB\xb6\x1d\xbc\x9f:",
|
25
|
+
"lib/revlogs/index.rb" => "\xaa.4\x97\x874g\xb9\xeb\\\x93\x96\x0c\xf8\x9f<\xea\xe9\xae\x16",
|
26
|
+
"lib/commands/command.rb" => "\xf4,\xaa\xf6\xcb\xb1\t\x88\x89\x0f\xd3d\x9d\xb2rQ\x9c!\xf1\x9a",
|
27
|
+
"lib/revlogs/node.rb" => "$&gv\x82{g\xe8Q\xcc$\x0f\x0eh\xdd\x1e\xf5\xba\xc66",
|
28
|
+
"lib/revlogs/revlog_support.rb" => "\xf2\x8b\xe7\xfa\xd4\x04l\xae\xb6\xdf\x82h\xeaW\xc3XLY\xbc/"}
|
29
|
+
assert_equal expected, result
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_manifest_read
|
33
|
+
result = @manifest.read(@manifest.node(8))
|
34
|
+
expected = {"lib/encoding/bdiff.rb" => "\x8c:\xc9\x1e\xd3\xdaa\xc3'\xbd\xfbF\xd4\xcfs\r\xe4\x936`",
|
35
|
+
"test/test_bdiff.rb" => "P\xa1\x85\x8b\xe6\xc6N\xb6\xf3\x92MuIv\xe1|u\x03\xadM",
|
36
|
+
"test/test_amp.rb" => "\x02\xf9k_3\xfe\xf7\x8b\x0e\x96\x99\xcd\xc4\xac\xa0\xee\x9e\xd5{\x10",
|
37
|
+
"Manifest.txt" => "\xf0H4jr\x1eS\x13u\x89,\xa1d\x92\xee*\x87z\x97\xf8",
|
38
|
+
"test/test_difflib.rb" => "\xba\x96\xa4r\x0b\xc0@\x16.\xc9!\xe8\x90s\x9c\x97\\\xd2c\xc7",
|
39
|
+
"lib/commands/dispatch.rb" => "~\x04\xe7H\xc4\xfc\x1b@\xee\xde\xe6\xdd\x04\x00\xde\x12\\,$\xfb",
|
40
|
+
"lib/encoding/difflib.rb" => "\xf8\x0b\x08\xf2!\x13\x81#\x87\x94\x1e/\x11\xcf\x05\x95K7\xf2\x05",
|
41
|
+
"lib/repository/repository.rb" => "\x7f\xac\xdc\x9e$\x8b\x1f\xba\xb9\xc9'\xa2\x0c$h\x8d2\xe6/\xc0",
|
42
|
+
"README.txt" => "\n0\xba\xf2\x99\x9c\xe8\n\xa7Wee\xc7\x9c\x8a\x11\x98\xc3\x7f\xa8",
|
43
|
+
"lib/commands/command.rb" => "\x84\x92\xae6Dsd\x10\x8b`\x90\x17\xcc\x07\xe0\x06\x0f\xb6L\xe6",
|
44
|
+
"History.txt" => "\xe1\x1e\x1f\x90\x96\x10\x0e\x8c\xc0X\x07`\x19\xbcf\x96\x96\x91\x84<",
|
45
|
+
"test/test_base85.rb" => "\xf5\x12\xce4C\x08pd;\x13s\xfcub!\xd7\xb0\xff\xc3\xe2",
|
46
|
+
"bin/amp" => "\xebG\xef\x04^y\xaa\xd8\xdc\x1ex\xbe\xb2\xc5\x8c\x01\x87\x84(~",
|
47
|
+
"lib/encoding/base85.rb" => "\x89\xda\xc14\x9f\x9b\x84\xad\xcf'\xd4\xe0|-\xf3\x04\x97\xebz\xdf",
|
48
|
+
"Rakefile" => "h\xf3\xab\x8e\xf2pu\xff\xa9\x9e\x94\x8et\xb7E\x1f\xb8\xee2\xfa",
|
49
|
+
"lib/commands/builtin_commands.rb" => "e\xe1\rR@sq\xcd\xf5\xd0\xde'\x99\xd01E\x04V\x9e1",
|
50
|
+
"jolts.rb" => "\xce\x96yL\x06J\xd8\xba\x93g=o\xf8P\x88-I\x1d\xb7\xc9",
|
51
|
+
"test/test_mpatch.rb" => "\xd2c\xcf\x03\xea\x86\x9b:\xa7\xba\xd8\x80\xcf\xad\x7f\xed\xfc\x07\xd9\xd6",
|
52
|
+
"lib/encoding/mpatch.rb" => "~\xadi\x7f\xb7i[\x17s\xa0\xa3\xd7E\x1c\xf0L4]\xb44",
|
53
|
+
"lib/amp.rb" => "\xfe\xf3\xcd\x96C\xca\\9\n\xb7\xfcE\xd0\xb8f\x14\rC*\xc6",
|
54
|
+
"lib/support/support.rb" => "A\x90\x8a\xe9\xdb3M\xbb\xaa\x15G\xdf \xfe\xee\xc8\xfdw\xdds",
|
55
|
+
".hgignore" => "~^\xb1WH\xf1\x9f\xee\xde\xb0@\xf3\xdc\xf3\xe57\xab\xaa\xc4\x9d"}
|
56
|
+
assert_equal expected, result
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_manifest_find
|
60
|
+
result = @manifest.find(@manifest.node(8), "lib/encoding/bdiff.rb")
|
61
|
+
expected = ["\x8c:\xc9\x1e\xd3\xdaa\xc3'\xbd\xfbF\xd4\xcfs\r\xe4\x936`", '']
|
62
|
+
assert_equal expected, result
|
63
|
+
|
64
|
+
result = @manifest.find(@manifest.node(21), "lib/support/support.rb")
|
65
|
+
expected = ["\x14|~9\xad\x1c\x1a5\xbe\xff\xcb\x81\x11J\xd6\x89g\xe2EK", '']
|
66
|
+
assert_equal expected, result
|
67
|
+
|
68
|
+
result = @manifest.find(@manifest.node(44), "lib/support/ruby_19_compatibility.rb")
|
69
|
+
expected = ["\xa3d\xd7?g\xb4p\xa6\xe2\xbd\xf9\x97P\x97.\xbb\x8f{\xd4\x05", '']
|
70
|
+
assert_equal expected, result
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../../lib/amp"))
|
3
|
+
|
4
|
+
class TestMerge < Test::Unit::TestCase
|
5
|
+
TEST_BASE = File.expand_path(File.join(File.dirname(__FILE__), 'base.txt'))
|
6
|
+
TEST_LOCAL = File.expand_path(File.join(File.dirname(__FILE__), 'local.txt'))
|
7
|
+
TEST_REMOTE = File.expand_path(File.join(File.dirname(__FILE__), 'remote.txt'))
|
8
|
+
TEST_EXPECTED = File.expand_path(File.join(File.dirname(__FILE__), 'expected.local.txt'))
|
9
|
+
TEST_OUT = File.expand_path(File.join(File.dirname(__FILE__), 'local.txt.out'))
|
10
|
+
TEST_BACKUP = File.expand_path(File.join(File.dirname(__FILE__), 'local.txt.bak'))
|
11
|
+
|
12
|
+
def test_full_merge
|
13
|
+
File.copy TEST_LOCAL, TEST_BACKUP
|
14
|
+
|
15
|
+
# kill the error output...
|
16
|
+
old, $stderr = $stderr, StringIO.new
|
17
|
+
Amp::Merges::ThreeWayMerger.three_way_merge(TEST_LOCAL, TEST_BASE, TEST_REMOTE,
|
18
|
+
:labels => ["local","other"])
|
19
|
+
$stderr = old # and reassign
|
20
|
+
|
21
|
+
File.move TEST_LOCAL , TEST_OUT
|
22
|
+
File.move TEST_BACKUP, TEST_LOCAL
|
23
|
+
assert_equal File.read(TEST_EXPECTED), File.read(TEST_OUT)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,333 @@
|
|
1
|
+
# -*- coding: us-ascii -*-
|
2
|
+
|
3
|
+
require "test/unit"
|
4
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../../lib/amp"))
|
5
|
+
|
6
|
+
class TestRevlog < Test::Unit::TestCase
|
7
|
+
TEST_REVLOG_INDEX = "testindex.i"
|
8
|
+
|
9
|
+
def setup
|
10
|
+
opener = Amp::Opener.new(File.expand_path(File.dirname(__FILE__)))
|
11
|
+
opener.default = :open_file # for testing purposes!
|
12
|
+
@revlog = Amp::Revlog.new(opener, TEST_REVLOG_INDEX)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_load_revlog
|
16
|
+
assert_not_nil @revlog
|
17
|
+
assert_equal(TEST_REVLOG_INDEX[0..-3] + ".d", @revlog.data_file)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_revlog_tip
|
21
|
+
result = @revlog.tip
|
22
|
+
expected = "|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"
|
23
|
+
assert_equal expected, result
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_revlog_size
|
27
|
+
result = @revlog.size
|
28
|
+
expected = 51
|
29
|
+
assert_equal expected, result
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_revlog_node_id_for_index
|
33
|
+
result = @revlog.node_id_for_index 10
|
34
|
+
expected = "\xf8`\x8b/\x1dR\xa2\xaf\x0c\x10M\x89y\xf7,\xdc\xfd6\xaaI"
|
35
|
+
assert_equal expected, result
|
36
|
+
result = @revlog.node_id_for_index 40
|
37
|
+
expected = "\x03\xb2\xdd\x03\x8b\xc7\x9cDaA\xb8\xbd\xebg\xcc\x18\x06\x91A\xf0"
|
38
|
+
assert_equal expected, result
|
39
|
+
result = @revlog.node_id_for_index 51
|
40
|
+
expected = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
|
41
|
+
assert_equal expected, result
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_revlog_revision_index_for_node
|
45
|
+
result = @revlog.revision_index_for_node "\xf8`\x8b/\x1dR\xa2\xaf\x0c\x10M\x89y\xf7,\xdc\xfd6\xaaI"
|
46
|
+
expected = 10
|
47
|
+
assert_equal expected, result
|
48
|
+
result = @revlog.revision_index_for_node "\x03\xb2\xdd\x03\x8b\xc7\x9cDaA\xb8\xbd\xebg\xcc\x18\x06\x91A\xf0"
|
49
|
+
expected = 40
|
50
|
+
assert_equal expected, result
|
51
|
+
result = @revlog.revision_index_for_node "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
|
52
|
+
expected = -1
|
53
|
+
assert_equal expected, result
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_revlog_link_revision_for_index
|
57
|
+
result = @revlog.link_revision_for_index 22
|
58
|
+
expected = 22
|
59
|
+
assert_equal expected,result
|
60
|
+
result = @revlog.link_revision_for_index 40
|
61
|
+
expected = 40
|
62
|
+
assert_equal expected,result
|
63
|
+
result = @revlog.link_revision_for_index 1
|
64
|
+
expected = 1
|
65
|
+
assert_equal expected,result
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_revlog_base_revision_for_index
|
69
|
+
result = @revlog.base_revision_for_index 1
|
70
|
+
expected = 0
|
71
|
+
assert_equal expected,result
|
72
|
+
result = @revlog.base_revision_for_index 10
|
73
|
+
expected = 7
|
74
|
+
assert_equal expected,result
|
75
|
+
result = @revlog.base_revision_for_index 50
|
76
|
+
expected = 48
|
77
|
+
assert_equal expected,result
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_revlog_parents_for_node
|
81
|
+
result = @revlog.parents_for_node "\xf8`\x8b/\x1dR\xa2\xaf\x0c\x10M\x89y\xf7,\xdc\xfd6\xaaI"
|
82
|
+
expected = ["\xd1\x818?\xc0*\xdf\xe4r\x13\x00\x95T\xf5\xbb\xf9\x84k\xc8\x1c", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"]
|
83
|
+
assert_equal expected,result
|
84
|
+
result = @revlog.parents_for_node "\x03\xb2\xdd\x03\x8b\xc7\x9cDaA\xb8\xbd\xebg\xcc\x18\x06\x91A\xf0"
|
85
|
+
expected = ["\x8cL\x01\nU#7\x1d\x1c5\xfb\x9b,vM\xbe\x80\x862M", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"]
|
86
|
+
assert_equal expected,result
|
87
|
+
result = @revlog.parents_for_node "` \xf6W_\xab\xf9+es-Ee\x14\xff\x1d\xf4\xf5\xd7\xfb"
|
88
|
+
expected = ["\x01\x0c\\\xbe\x1ea\xc3\xcfu\xeeM\xfa\xfc#\xd0\x87%\xb2\x9bA", "\xd84l\x9e\x04\xe1s0\x1e2T\x98f\"&\xa2\xd9\xad\xc5\x7f"]
|
89
|
+
assert_equal expected,result
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_revlog_parent_indices_for_index
|
93
|
+
result = @revlog.parent_indices_for_index 24
|
94
|
+
expected = [23, -1]
|
95
|
+
assert_equal expected,result
|
96
|
+
result = @revlog.parent_indices_for_index 25
|
97
|
+
expected = [24, 21]
|
98
|
+
assert_equal expected,result
|
99
|
+
result = @revlog.parent_indices_for_index 26
|
100
|
+
expected = [22, 25]
|
101
|
+
assert_equal expected,result
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_revlog_data_start_for_index
|
105
|
+
result = @revlog.data_start_for_index 42
|
106
|
+
expected = 6995
|
107
|
+
assert_equal expected,result
|
108
|
+
result = @revlog.data_start_for_index 7
|
109
|
+
expected = 1335
|
110
|
+
assert_equal expected,result
|
111
|
+
result = @revlog.data_start_for_index 35
|
112
|
+
expected = 5810
|
113
|
+
assert_equal expected,result
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_revlog_data_length_for_index
|
117
|
+
result = @revlog.data_size_for_index 42
|
118
|
+
expected = 95
|
119
|
+
assert_equal expected,result
|
120
|
+
result = @revlog.data_size_for_index 7
|
121
|
+
expected = 128
|
122
|
+
assert_equal expected,result
|
123
|
+
result = @revlog.data_size_for_index 35
|
124
|
+
expected = 122
|
125
|
+
assert_equal expected,result
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_revlog_data_end_for_index
|
129
|
+
result = @revlog.data_end_for_index 42
|
130
|
+
expected = 7090
|
131
|
+
assert_equal expected,result
|
132
|
+
result = @revlog.data_end_for_index 7
|
133
|
+
expected = 1463
|
134
|
+
assert_equal expected,result
|
135
|
+
result = @revlog.data_end_for_index 35
|
136
|
+
expected = 5932
|
137
|
+
assert_equal expected,result
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_revlog_reachable
|
141
|
+
result = @revlog.reachable_nodes_for_node "|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"
|
142
|
+
expected = {"\x82\x8b\xd3\x98\xea\xcb\rq\xf1\xb1\xdbg\xe8\xbe!(\x19\x1f\x9d\x93" => true,
|
143
|
+
"\x87\x16\xac\xec?\xd2{\xc5\xba\xa9\n\x8d\x82\xf5\x9e\xa5\xd2<+Z" => true,
|
144
|
+
"\xfb\x7f\xe6*\x92\x0e\xb9!\xd6\x10\x06(\xf98&\xd6\x90\x06\xc23" => true,
|
145
|
+
"\x19}\xe0X\xf7\x90\xf6\x88\xcf\x06\x95E\x13ym\xde=msk" => true,
|
146
|
+
"\x9c\x91\xd9\xb1\xec\xf4L/\x16\xaf=\xc9&\x14\xad.v\xaf\xce\\" => true,
|
147
|
+
"\xce\x10\x8a<\xb8%\x90T\x19+R1\xe4\x7f\xd5J\\\xf9\xe0\x81" => true,
|
148
|
+
"I\xde:;7\x16\xfaK\x02\xdb\xbf0\xb5(c\xd8\xf6\xfe\x80\x08" => true,
|
149
|
+
"\x99\xc5\xf6\xcb|6f\xca\xc1\xc6\xae\x86\xe9\xda\x1e\xf2\xcf\xee\xf9\xe8" => true,
|
150
|
+
"!i2I7$A\xfe\xe9\x80G\xbe\xa7\xb50Mb\\\x89\x0e" => true,
|
151
|
+
"\x8cL\x01\nU#7\x1d\x1c5\xfb\x9b,vM\xbe\x80\x862M" => true,
|
152
|
+
"\xf9`\xd4\xdcQ\x1c`\x0c\xc0\x10\xa2\xeb\x81\xe4:\xae,\x81\x1f\xa3" => true,
|
153
|
+
"co\xac\xbd\x02\xfb\xdc\xd5\x93\x16\x9a\xb5\xa3\x9ep}R\xe9\xa7\x19" => true,
|
154
|
+
"g\xf4t-\xcc|w\xc01v\x80JH\x93\x05\xaa\x07\x13F\xe1" => true,
|
155
|
+
"\x0b\xf3\x81\\\xe1k\x19\x14Qa\xbah|\xa4?\xfa\xb4\xa4VH" => true,
|
156
|
+
"W5\xbe\xb7n\xfdd\xa4nn\x14\x0b\xc6\xf1\xbf\xee\x8e\x92\xeeF" => true,
|
157
|
+
"\x14\x07T\xfb\xc4\xdc\x88\xb7\xb3\x13\xb2\x9e-\xd4\xe87\xb8X+B" => true,
|
158
|
+
"_\xf7\xf8\xdd\xfd\xfa\xda1\xe0\x97\x96\xa1\\\xe0g\xe1}p\x1bn" => true,
|
159
|
+
"\x1fZd\xa4\xc7\xb8V\xcaK@b\xc3\x7f{YD\xd1:{\xb6" => true,
|
160
|
+
"\xd0D\x9a\x99h\x06\"\x9e\x16C\x89F\xa4\xff\xf1\xa0N\xcaj\xc6" => true,
|
161
|
+
"R\xed\x19\x93\r\xcd\xb2\xc6b|J\x89\xf7\xa7% E\xfa}\xe9" => true,
|
162
|
+
"\x03\xb2\xdd\x03\x8b\xc7\x9cDaA\xb8\xbd\xebg\xcc\x18\x06\x91A\xf0" => true,
|
163
|
+
"\xc0t\xcf\x9a%p{\xe4X\xbb.+\xa0\xbe\xf5\x99\x1a\xc7{\xde" => true,
|
164
|
+
"E \xc3\xc6\xcc\x99\x91\x01H\xfe\x95s\xc4I@\xafrW$\xa1" => true,
|
165
|
+
"\x12>\xf0\x91W\x88 \x8d\xf8\xb3\xa2<{\xed \x90\xe1\x9b\x0e\xda" => true,
|
166
|
+
"vO\x00\x85\x19\x968\xc0\x9b\x80\x9a\xec*\x9c\x12\xcd\xd9\x15\xf1\xee" => true,
|
167
|
+
"#.9\xc3f\xec\x9b\t\x96\xffqKz3<\x16\x9a\x95\x11\x1d" => true,
|
168
|
+
"C\xfe\xec\xf2\x8fL\xb3\x95\xb5\x8d\x1f\xb1\xbc\xc7Y\xfe\xae\xf5;=" => true,
|
169
|
+
"\xa0\x89\xde\xcd\x9bt\x98\xdc\xf9\x0c#,XZ\xc0\xc8\xeb\xa6/\xd4" => true,
|
170
|
+
"\x8fR$g\xcc!l\xfe\xa4\xc7\xe5\x87G\xd3\xe75!g\xa5_" => true,
|
171
|
+
"\xef%\xc7Z\x0co\x08B\xed\x80\x98\t\x18)\xecj\x1c\x9b\x9b\x94" => true,
|
172
|
+
"\xf7>6\xc4=\xe3\xe8$\x08\x9b\x87\x95P\x1c\xbe\\4\xfa\xed\xce" => true,
|
173
|
+
"\x01\x0c\\\xbe\x1ea\xc3\xcfu\xeeM\xfa\xfc#\xd0\x87%\xb2\x9bA" => true,
|
174
|
+
")\xc1\xc5r\xbc\x10\x86\xdc\xf2:\xca\xda\xe5i\x7f\xb6\x1c\x14i1" => true,
|
175
|
+
"\xb0\x94\xcc,\\\xacY\x87\xa4\x9a1\xbc\x88jM\xafM\xd3\xd0\xee" => true,
|
176
|
+
"s\xc3\x8dK\xcb\xe9\x93\xd1\x8a\xf2\xe4\xc8\xc3f\xd1J\xe8\x8c\xeaZ" => true,
|
177
|
+
"\x08\xe9\x07^\x1d\x9a\xed|\xb2QC\xd6\x8a\xd9:@\xf2\xdcT$" => true,
|
178
|
+
"|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02" => true,
|
179
|
+
"\x18\xac\x85\x85q\x01Z\x85\x0ff\x1b\x9c\xc1hM\x1cX\xcd\x9b\xa7" => true,
|
180
|
+
"` \xf6W_\xab\xf9+es-Ee\x14\xff\x1d\xf4\xf5\xd7\xfb" => true,
|
181
|
+
"o(\xef\xc0\xe3(\xbdP6=P\xd7!\xa4a$\x10\x1a\xce\xc4" => true,
|
182
|
+
"\x02\x8c\xfb\xa9\x16\xb1&\xa7\x04\xa0\xfezr\x8d5\x9b\x1c2\xacv" => true,
|
183
|
+
"\x1e\x0eA+q\xa0\x16cm\xe2\xc8\xa1\xbfJ\xfb\r\x15,\xd3*" => true,
|
184
|
+
"\xd1\x818?\xc0*\xdf\xe4r\x13\x00\x95T\xf5\xbb\xf9\x84k\xc8\x1c" => true,
|
185
|
+
"\n\xb7\xdc\x9b\x80l-lWGK?\x8a\x9dxq\xef\xdf&@" => true,
|
186
|
+
"\x07?\xae0\xaa`\xec\x97x=\x7f\x95 \xbc\x1c\x0e\x16\xe4\xe1\xe8" => true,
|
187
|
+
"\xe2\xeaP\x89\x1b\xa7\xc9\x03H\x0fh\xc4f\xd8\xd8w\xa8\xf9\xd3\xb6" => true,
|
188
|
+
"\xf5\xd0fy\x11\xe1\xf9\xfc\xe1\xb9\x9e\xc4Gp\x00\xcd\xb5\xa4*\xcc" => true,
|
189
|
+
"\t\xb2\x0f\xe5\xc2\xba\x1a\xa9>\xb0#\x8c\x85l\x0e\xb6\x18\xc1s\xcb" => true,
|
190
|
+
"\xd84l\x9e\x04\xe1s0\x1e2T\x98f\"&\xa2\xd9\xad\xc5\x7f" => true,
|
191
|
+
"\x87\xb9\x16\xc6\xb9\xafF\x8b\xa8\x99,g\xca]\x9a\xc9g\xe5^\x94" => true,
|
192
|
+
"\xf8`\x8b/\x1dR\xa2\xaf\x0c\x10M\x89y\xf7,\xdc\xfd6\xaaI" => true}
|
193
|
+
expected.each do |k, v|
|
194
|
+
unless result.keys.include? k
|
195
|
+
flunk
|
196
|
+
end
|
197
|
+
end
|
198
|
+
assert true
|
199
|
+
end
|
200
|
+
|
201
|
+
def test_revlog_ancestors
|
202
|
+
result = @revlog.ancestors([10]).to_a.sort
|
203
|
+
expected = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
204
|
+
assert_equal expected, result
|
205
|
+
end
|
206
|
+
|
207
|
+
def test_revlog_descendants
|
208
|
+
result = @revlog.descendants([30]).to_a.sort
|
209
|
+
expected = [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]
|
210
|
+
assert_equal expected, result
|
211
|
+
end
|
212
|
+
|
213
|
+
def test_revlog_heads
|
214
|
+
result = @revlog.heads.to_a.sort
|
215
|
+
expected = ["|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"]
|
216
|
+
assert_equal expected, result
|
217
|
+
end
|
218
|
+
|
219
|
+
def test_revlog_between
|
220
|
+
result = @revlog.nodes_between(["\xc0t\xcf\x9a%p{\xe4X\xbb.+\xa0\xbe\xf5\x99\x1a\xc7{\xde"],
|
221
|
+
["|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"])
|
222
|
+
expected = {:between => ["\xc0t\xcf\x9a%p{\xe4X\xbb.+\xa0\xbe\xf5\x99\x1a\xc7{\xde", "\xfb\x7f\xe6*\x92\x0e\xb9!\xd6\x10\x06(\xf98&\xd6\x90\x06\xc23", "\x1e\x0eA+q\xa0\x16cm\xe2\xc8\xa1\xbfJ\xfb\r\x15,\xd3*", "|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"],
|
223
|
+
:roots => ["\xc0t\xcf\x9a%p{\xe4X\xbb.+\xa0\xbe\xf5\x99\x1a\xc7{\xde"],
|
224
|
+
:heads => ["|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"]}
|
225
|
+
assert_equal expected, result
|
226
|
+
end
|
227
|
+
|
228
|
+
def test_revlog_children
|
229
|
+
result = @revlog.children("` \xf6W_\xab\xf9+es-Ee\x14\xff\x1d\xf4\xf5\xd7\xfb")
|
230
|
+
expected = ["\xb0\x94\xcc,\\\xacY\x87\xa4\x9a1\xbc\x88jM\xafM\xd3\xd0\xee"]
|
231
|
+
assert_equal expected, result
|
232
|
+
end
|
233
|
+
def test_revlog_id_match
|
234
|
+
result = @revlog.id_match("` \xf6W_\xab\xf9+es-Ee\x14\xff\x1d\xf4\xf5\xd7\xfb")
|
235
|
+
expected = "` \xf6W_\xab\xf9+es-Ee\x14\xff\x1d\xf4\xf5\xd7\xfb"
|
236
|
+
assert_equal expected, result
|
237
|
+
result = @revlog.id_match(5)
|
238
|
+
expected = "\xf5\xd0fy\x11\xe1\xf9\xfc\xe1\xb9\x9e\xc4Gp\x00\xcd\xb5\xa4*\xcc"
|
239
|
+
assert_equal expected, result
|
240
|
+
end
|
241
|
+
|
242
|
+
def test_revlog_partial_match
|
243
|
+
result = @revlog.partial_id_match("7c03fe1439812bcc35a397942a49e2b954a9ac")
|
244
|
+
expected = "|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"
|
245
|
+
assert_equal expected, result
|
246
|
+
end
|
247
|
+
|
248
|
+
def test_revlog_lookup_id
|
249
|
+
result = @revlog.lookup_id("` \xf6W_\xab\xf9+es-Ee\x14\xff\x1d\xf4\xf5\xd7\xfb")
|
250
|
+
expected = "` \xf6W_\xab\xf9+es-Ee\x14\xff\x1d\xf4\xf5\xd7\xfb"
|
251
|
+
assert_equal expected, result
|
252
|
+
result = @revlog.lookup_id(5)
|
253
|
+
expected = "\xf5\xd0fy\x11\xe1\xf9\xfc\xe1\xb9\x9e\xc4Gp\x00\xcd\xb5\xa4*\xcc"
|
254
|
+
assert_equal expected, result
|
255
|
+
result = @revlog.lookup_id("7c03fe1439812bcc35a397942a49e2b954a9ac")
|
256
|
+
expected = "|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"
|
257
|
+
assert_equal expected, result
|
258
|
+
end
|
259
|
+
|
260
|
+
def test_revlog_cmp
|
261
|
+
str = "273f0c435892dea22da8ef93a44ebcacc797b7c3\nmichaeledgar@michael-edgars-macbook-pro.local\n1238527096 " +
|
262
|
+
"14400\nlib/revlogs/revlog.rb\nlib/revlogs/revlog_support.rb\nlib/support/support.rb\n\ntweaked to use "+
|
263
|
+
".null? and .not_null?\n\nari... lol... node_ids are strings, so putting .null? on the Numeric class wasn't"+
|
264
|
+
" the way to go ;-)"
|
265
|
+
node = "|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02"
|
266
|
+
assert_equal false, @revlog.cmp(node, str)
|
267
|
+
end
|
268
|
+
|
269
|
+
def test_revlog_get_chunk
|
270
|
+
result = @revlog.get_chunk 3
|
271
|
+
expected = "\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)2ac51d136ec922ba54cb149dfcdcbd9a17253ab0\n\x00\x00\x00W\x00\x00"+
|
272
|
+
"\x00h\x00\x00\x00/1238272471 14400\nManifest.txt\nbin/amp\njolts.rb\n\x00\x00\x00s\x00\x00\x00\xd0\x00\x00"+
|
273
|
+
"\x00\\lib/commands/dispatch.rb\nlib/encoding/bdiff.rb\nlib/encoding/difflib.rb\ntest/test_difflib.rb\n\x00"+
|
274
|
+
"\x00\x00\xd1\x00\x00\x00\xec\x00\x00\x00yadded difflib port, added binary diff class (which mercurial-diff "+
|
275
|
+
"uses)\nadded jolts.rb - which is the Rakefile, basically"
|
276
|
+
assert_equal expected, result
|
277
|
+
end
|
278
|
+
|
279
|
+
def test_revlog_revision_diff
|
280
|
+
result = @revlog.revision_diff 4,5
|
281
|
+
expected = "\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)e7cebf6558e7de50f9afa223ce13262afcc296a1\n\x00\x00\x00W\x00\x00\x00"+
|
282
|
+
"h\x00\x00\x00\x1b1238296608 14400\n.hgignore\n\x00\x00\x00q\x00\x00\x00q\x00\x00\x00\x93lib/commands/command.rb"+
|
283
|
+
"\nlib/commands/dispatch.rb\nlib/encoding/base85.rb\nlib/encoding/bdiff.rb\nlib/encoding/difflib.rb\nlib/repository"+
|
284
|
+
"/repository.rb\n\x00\x00\x00\x89\x00\x00\x00\xd9\x00\x00\x00PButtload of documentation. Added an .hgignore to avoid"+
|
285
|
+
" the docs being versioned."
|
286
|
+
assert_equal expected, result
|
287
|
+
end
|
288
|
+
def test_revlog_decompress_revision
|
289
|
+
result = @revlog.decompress_revision "\xc0t\xcf\x9a%p{\xe4X\xbb.+\xa0\xbe\xf5\x99\x1a\xc7{\xde"
|
290
|
+
expected = "6a3d4041fc19b7d64ce9f2567ea4564cb1106594\nmichaeledgar@michael-edgars-macbook-pro.local\n1238480134 "+
|
291
|
+
"14400\nlib/encoding/mdiff.rb\ntest/test_mdiff.rb\n\nmore interesting testing revealed bugs in mercurial"+
|
292
|
+
" diff. they're fixed with hacks. test in for a complex unified diff!"
|
293
|
+
assert_equal expected, result
|
294
|
+
end
|
295
|
+
def test_revlog_add_revision
|
296
|
+
cmp_file = "./test/revlog_tests/revision_added_changelog.i"
|
297
|
+
new_file = "./test/revlog_tests/test_adding_index.i"
|
298
|
+
opener = Amp::Opener.new(".")
|
299
|
+
opener.default = :open_file
|
300
|
+
newrevlog = Amp::Revlog.new(opener, new_file)
|
301
|
+
Amp::Journal.start("sillymonkey.tx") do |j|
|
302
|
+
newrevlog.add_revision("silly", j, 50, "|\x03\xfe\x149\x81+\xcc5\xa3\x97\x94*I\xe2\xb9T\xa9\xac\x02", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")
|
303
|
+
end
|
304
|
+
new_str = ""
|
305
|
+
cmp_str = ""
|
306
|
+
File.open(new_file, "r") do |f|
|
307
|
+
new_str = f.read
|
308
|
+
end
|
309
|
+
File.open(cmp_file, "r") do |f|
|
310
|
+
cmp_str = f.read
|
311
|
+
end
|
312
|
+
i = 0
|
313
|
+
new_str.force_encoding("ASCII-8BIT") if RUBY_VERSION >= "1.9"
|
314
|
+
cmp_str.force_encoding("ASCII-8BIT") if RUBY_VERSION >= "1.9"
|
315
|
+
|
316
|
+
new_str = new_str.split("")
|
317
|
+
cmp_str = cmp_str.split("")
|
318
|
+
while new_str.first == cmp_str.first && new_str.size > 0
|
319
|
+
new_str.shift
|
320
|
+
cmp_str.shift
|
321
|
+
i += 1
|
322
|
+
end
|
323
|
+
unless new_str.empty? && cmp_str.empty?
|
324
|
+
puts "Failed at byte #{ i }"
|
325
|
+
flunk
|
326
|
+
end
|
327
|
+
assert true
|
328
|
+
end
|
329
|
+
|
330
|
+
# def test_revlog_ancestor
|
331
|
+
# assert_equal(19, @revlog.rev(@revlog.ancestor(@revlog.node(19), @revlog.node(45))))
|
332
|
+
# end
|
333
|
+
end
|