diff options
-rw-r--r-- | include/git2/thread-utils.h | 67 | ||||
-rw-r--r-- | tests/resources/testrepo.git/packed-refs | 193 | ||||
-rw-r--r-- | tests/t10-refs.c | 20 |
3 files changed, 34 insertions, 246 deletions
diff --git a/include/git2/thread-utils.h b/include/git2/thread-utils.h index 62e6199a4..e26876bea 100644 --- a/include/git2/thread-utils.h +++ b/include/git2/thread-utils.h @@ -31,48 +31,41 @@ * http://predef.sourceforge.net/precomp.html */ -#ifdef GIT_THREADS -# define GIT_HAS_TLS 1 +#define GIT_HAS_TLS 1 -/* No TLS in Cygwin */ -# if defined(__CHECKER__) || defined(__CYGWIN__) -# undef GIT_HAS_TLS -# define GIT_TLS +#if defined(__APPLE__) && defined(__MACH__) +# undef GIT_TLS +# define GIT_TLS -/* No TLS in Mach binaries for Mac OS X */ -# elif defined(__APPLE__) && defined(__MACH__) -# undef GIT_TLS -# define GIT_TLS +#elif defined(__GNUC__) || \ + defined(__SUNPRO_C) || \ + defined(__SUNPRO_CC) || \ + defined(__xlc__) || \ + defined(__xlC__) +# define GIT_TLS __thread -/* Normal TLS for GCC */ -# elif defined(__GNUC__) || \ - defined(__SUNPRO_C) || \ - defined(__SUNPRO_CC) || \ - defined(__xlc__) || \ - defined(__xlC__) -# define GIT_TLS __thread +#elif defined(__INTEL_COMPILER) +# if defined(_WIN32) || defined(_WIN32_CE) +# define GIT_TLS __declspec(thread) +# else +# define GIT_TLS __thread +# endif -/* ICC may run on Windows or Linux */ -# elif defined(__INTEL_COMPILER) -# if defined(_WIN32) || defined(_WIN32_CE) -# define GIT_TLS __declspec(thread) -# else -# define GIT_TLS __thread -# endif +#elif defined(_WIN32) || \ + defined(_WIN32_CE) || \ + defined(__BORLANDC__) +# define GIT_TLS __declspec(thread) -/* Declspec for MSVC in Win32 */ -# elif defined(_WIN32) || \ - defined(_WIN32_CE) || \ - defined(__BORLANDC__) -# define GIT_TLS __declspec(thread) +#else +# undef GIT_HAS_TLS +# define GIT_TLS /* nothing: tls vars are thread-global */ +#endif -/* Other platform; no TLS */ -# else -# undef GIT_HAS_TLS -# define GIT_TLS /* nothing: tls vars are thread-global */ -# endif -#else /* Disable TLS if libgit2 is not threadsafe */ -# define GIT_TLS -#endif /* GIT_THREADS */ +/* sparse and cygwin don't grok thread-local variables */ +#if defined(__CHECKER__) || defined(__CYGWIN__) +# undef GIT_HAS_TLS +# undef GIT_TLS +# define GIT_TLS +#endif #endif /* INCLUDE_git_thread_utils_h__ */ diff --git a/tests/resources/testrepo.git/packed-refs b/tests/resources/testrepo.git/packed-refs index ac97756cc..52f5e876f 100644 --- a/tests/resources/testrepo.git/packed-refs +++ b/tests/resources/testrepo.git/packed-refs @@ -1,192 +1,3 @@ # pack-refs with: peeled -648cc08c8cef41c3d89fb799310457d58509d983 refs/heads/DEPLOYED -aa145e720003c0cf205693911d9e1aee70f41d50 refs/heads/analytics -ebabd47b35b49298cd053953bc830bb0583a37cf refs/heads/api-objects -f1b17f1bf7a21a44ad69d509411951408d9ba2ba refs/heads/dagnav -04c2088215d2a35d261e05d744fc79b49f00b546 refs/heads/doctab -fbcc404cef3c5183277dc28077a95cafa4558a2d refs/heads/fuck-help -33a31194c9297f6fd9aac14fcbed9fc2e7144f0c refs/heads/master -c819ca2119e0d7ba88a6392231e2fb095499f630 refs/heads/sexy-about -61f325f8552e06c9c3c3d289f8f047b7662f9803 refs/heads/switch-branch -191dedfb05a6f7c36cfbd0b8a24a5ae365b39839 refs/heads/updateref -766ff1b1098a37a87c7b147d0b3f6f8347cbbba0 refs/heads/wiki-http -ab90b815fc9ebd819444ef5c27be7d91328a0105 refs/heads/wip-features -152d7ab4b1860b2ca86b20e922636a59fe243181 refs/original/refs/heads/slummin-bare -ef7326791c2795181089a0cc20c83dc23ed209a5 refs/pr/github/github/automagic-labels -6137dbca2aa3208d841c4eab4cf613fb8f63e9af refs/pr/github/github/bespin -1fb86c25803fc7fdcd8f4b8d8b36d94b7c1f795a refs/pr/github/github/blob-1rt -ac37c3eb4e6f242a28aab8b16bb682880e959a0c refs/pr/github/github/branch-perms -1c884ca334936ac9e76c03717ea56d28a0e833c0 refs/pr/github/github/brians-issues -049f4714c3e2dbfb7bf594488e029c53f093a3ed refs/pr/github/github/bundled-and-multi-resque -1be083acb1a8cd5f799855596d647ef92c3b3bd4 refs/pr/github/github/cached-grit-gollum-gems -31964118cddbc3b5ef67e026e4df8754affaa82f refs/pr/github/github/co2 -09f3c0334ddd683fc2ec3fb13ceda26d4d6edd3a refs/pr/github/github/codemirror -ca8be99bc1b662e363d1556809208cc2cf247c86 refs/pr/github/github/compare-message -b1a12e27a6b480618148386de53913aa8d509152 refs/pr/github/github/compare-no-common-ancestor -d1e750be774a86b9885f17ad3d2770e98f96c01a refs/pr/github/github/compare-walker-commit-cache -3139705ff863b10aa5583a1fc8f350df0dbda020 refs/pr/github/github/diff-browser-perf -5059ef011b5e678837b28c97e718156eb4bd292d refs/pr/github/github/diff-enumerator -fcea8a71e43a6abea9b38ae62a9eeb7e84f5652a refs/pr/github/github/disabled -cb7293fcaf660c020acb1cf84171cd3fb1bfc74f refs/pr/github/github/edit-msg -688d8877e7181571d314f97d8f81eac991fc0773 refs/pr/github/github/email -fffc31d36ba634a47a30d98482dcb10bef4f8e90 refs/pr/github/github/entercompare -cbd42e51deaba940941fe723a2768fa9f5b271f7 refs/pr/github/github/escape_utils -36e49c99ab391b2f0b2c6e44f33c19e963b88765 refs/pr/github/github/fi -0720c2428b09824c396fdc88657756322621b17c refs/pr/github/github/fi-eval -c718c454fd2addab3c52f8904660abb1f2b527f0 refs/pr/github/github/fi-merge -b1337204714a4634f609f0c0be4771685e1e01e2 refs/pr/github/github/fi-oa-bump -fb50e94162435c6ea8a42115616bc127f191e06a refs/pr/github/github/fi-omni -97d523a8b62dc4c1517ebe86e27072c464a98fef refs/pr/github/github/fi2ee -ab2eb9da1ebcbd78ea25eb081d983949d8c1dcbc refs/pr/github/github/finder-slider -279c0b11b862d9deb2e2078501bdee253c9869f8 refs/pr/github/github/finish-i18n -b0c38ee10d8c4189b01bbd5c20ea795f47528e50 refs/pr/github/github/forkqueue-names -13e4c36c805ac5a8357a6f6278021e537df9a9ef refs/pr/github/github/gctune -10eaa7815baf2768c85878f9b392e5d48e199ee0 refs/pr/github/github/gem-upgrades -1ff7a75796b7073f00b044d99b8c1819098523fe refs/pr/github/github/gist-404 -2d51172eaaacc4de9020d485d21720761a3fb3d1 refs/pr/github/github/git-fail-stderr -9838021622ab3036e09f3e7d2aa7c3dac821de18 refs/pr/github/github/gollum-link -81f9652dc9721651b7201be887908eb8943bffd5 refs/pr/github/github/hd-logo -54f78713e34e0873fb4d25d2d6020d720652da01 refs/pr/github/github/hella-skipmc -5d2f45fcad855aa30c9071381cd91dda4a9ac65b refs/pr/github/github/improved-filterbar -3cad5acccd48d5851055ad12f809d1d281e69255 refs/pr/github/github/invoice-mustache -8b939afd49796f6eb4bb497c917869eb1801f87d refs/pr/github/github/ip-range -b83693abc42b65e225527151186a587b555b34eb refs/pr/github/github/isearch -9d55f97bf3bb189921031f4d2be9af95a85d3a6a refs/pr/github/github/issues-next -e31d660a5de4af47793cbfc77abcebab0c15960a refs/pr/github/github/jstorage -20328245ba899051abd4384021c6f40828abf201 refs/pr/github/github/keyboard-cutdown -1a730eea0b6aed7b32bde5848a1d1900a8671cf2 refs/pr/github/github/link-preview -b1c6b790cf69252037a1b584db2ad1b1666035d4 refs/pr/github/github/maintenance-mode -142b6299832db3e804b85e84771768b2e8d65a23 refs/pr/github/github/master -c8160e0015aafc171fe6024a9f37d0f86f94cb9d refs/pr/github/github/memprof -7426270e0587d19913ea81d8822491a5cfc10505 refs/pr/github/github/message-id -7122f7419446ff99deb560c7c45ff8fdee764665 refs/pr/github/github/move-solr-index -864058e68ebdb5ff9885f67e5b30b7d24a0cabe0 refs/pr/github/github/multiple-resque-failbot -362fae679822cab3b94bb8375619901cf303e559 refs/pr/github/github/mysql2 -cb064eea5dda48198afbf9fd6bdc6de4c73b9185 refs/pr/github/github/newjekyll -a272c9a449edee6140f9f03580e7c7bbcbde249b refs/pr/github/github/newsearch -68008205d68720946ede80bee72da86db6ebccae refs/pr/github/github/ng-measure -80d39b01e1f59c24dd61ea3b07dd8ff4f3f0deea refs/pr/github/github/ninja-turtles -867110feaf803a3d2cfaf13f6c2af5e8a248bbea refs/pr/github/github/nodeload-with-queue -bc2dd5885fef523ec33cb06bc1d9fc68e5759487 refs/pr/github/github/oauth2-smart-git -db430b7bf24bfca20e8cf742202709c03063afad refs/pr/github/github/perftools -560359c6e3747dd40ac93e7a013a719c1922e1e3 refs/pr/github/github/plaintext-email-replies -867893a8881f9ab7ae4591b1e96e55ed41a7d114 refs/pr/github/github/plan-breakup -ff28009261944f98c015b85804b490a2b6f45930 refs/pr/github/github/proxymachine-bump -7bf4040bdb507e5a9d5033f9be2a0ed6174d5c70 refs/pr/github/github/pull-merge-fix -f7ee9b0e2efa6063c3ae8ed486e62791210ecf3b refs/pr/github/github/pull-refresh -91a07a3bcdffed6312a4290ed0eb7fb893c5b803 refs/pr/github/github/pull-review-shipit -d637baf5c87aaf8d3e325b9026495029fe85df58 refs/pr/github/github/pull-review-with-less-preloading -94dccaeb8720e3aa4dd34761bad7cff3559bbafe refs/pr/github/github/push-compare -381f32b4fe7240105daec67f6d6d87eeb212b14c refs/pr/github/github/railsup -5b16730a46ff3968520cac591266746598841c93 refs/pr/github/github/rbtrace -4af07f9af9c08ae14e3250f6328311238487ec8c refs/pr/github/github/reduce-dom -039583aa47c2aad717b780f4cb0aaf6e94bddb23 refs/pr/github/github/ssl-chart -e6dbebb2d11693e8905babb6cf3931c9edff5956 refs/pr/github/github/supergc -5143d8e39f5a56fa83b04d297573a1de6337433a refs/pr/github/github/tree-finder -44e6c07736838ebf91eff4e2c5c6d737c7e2d67c refs/pr/github/github/ui-pattern -bdf94b922ad2583828b37049811b7a8aed3eff58 refs/pr/github/github/wiki-http -3e4b6c5a5b37ca77b75723d397079d44d805136c refs/pr/github/github/xss-everywhere -4be47bd500d595ad735e077ea7b2b1b0ff399de4 refs/pr/github/github/yajl-upgrade -ebabd47b35b49298cd053953bc830bb0583a37cf refs/remotes/origin/api-objects -34599a976f41756e0aeae04bb9dc57f4a89d380d refs/remotes/origin/api-webhooks -50968eee5407ac8950c396ba630e23b7c0f69312 refs/remotes/origin/billing-mock -162966bb9d9dbd39e614c9d86b31b20cdd9cd6eb refs/remotes/origin/blame-commit-msg -4915a6e47b6b1c2f715971373409d188c2284a3d refs/remotes/origin/blame-tree -d886285fa55ae8312d2187a1b60793fbdd9d7319 refs/remotes/origin/blob-authors -ac37c3eb4e6f242a28aab8b16bb682880e959a0c refs/remotes/origin/branch-perms -0466d8efc54659e4b12f5aad5f047bc29c682466 refs/remotes/origin/bt-orange-txn -a822e7c50ba38f926de94d4f17262bb84d422e27 refs/remotes/origin/bust-profile-cache -8d6488e50b56d6b6c9263f1715a29c9fc7c88519 refs/remotes/origin/camo-upgrade -c08deaec8983d57e1a7800ab19cb359354aab76b refs/remotes/origin/clear-invalid-assignees -b9b06d71fbeebed3a8f559eb6fa0e05ea56f07f0 refs/remotes/origin/cname -09f3c0334ddd683fc2ec3fb13ceda26d4d6edd3a refs/remotes/origin/codemirror -cdb1b3c9e5f2562d72ea28a0446156927c6db963 refs/remotes/origin/commit-mention -5579a8b2bed319e93b46de2489aa5f5e51ad7e4c refs/remotes/origin/commits-search -ca8be99bc1b662e363d1556809208cc2cf247c86 refs/remotes/origin/compare-message -07297b4ead6fbf7d75e776364460402938b30612 refs/remotes/origin/compareviews -b54d1edd0e11851243c8fcefa1d4b3b9d2aaa0ae refs/remotes/origin/css-data-urls -1907d0ff7abb5db8f3bcafb5f8b54b98af9212aa refs/remotes/origin/daemons -3139705ff863b10aa5583a1fc8f350df0dbda020 refs/remotes/origin/diff-browser-perf -abe0913e11a8e7aab4b20d5c32802f51c1cf8af1 refs/remotes/origin/disable-entice -f5894abdd75e3b37d8230f038115c77de206f6dd refs/remotes/origin/docco-gist -04c2088215d2a35d261e05d744fc79b49f00b546 refs/remotes/origin/doctab -fffc31d36ba634a47a30d98482dcb10bef4f8e90 refs/remotes/origin/entercompare -9881f9c5b1462a38b0a586d3ce99d04af77e8611 refs/remotes/origin/escape_utils -cdda59533c97661dfad6bff1df7424dde097cf83 refs/remotes/origin/ext -f7b66e44f85576caef4d006515779292852770cf refs/remotes/origin/failbot -c2820fdc22c1a3fadf3a4c295edf312308b33876 refs/remotes/origin/fi -967499e413b9eaa53c1b454ae0d43cf4714e7bba refs/remotes/origin/fi-ben -0720c2428b09824c396fdc88657756322621b17c refs/remotes/origin/fi-eval -172a26d55b3fbeb3624b87283401dfd1ae702c5c refs/remotes/origin/fi-omniauth -93c794048bc3218d746a91616c4280c0ab9d5a99 refs/remotes/origin/fi2ee -74678f764fd689ea515a73583fa2968b342fb8c4 refs/remotes/origin/fi2ee2beer -adae8f36766d03dc8d917b1a63fc6aec2236a3e7 refs/remotes/origin/foreman -b0c38ee10d8c4189b01bbd5c20ea795f47528e50 refs/remotes/origin/forkqueue-names -fbcc404cef3c5183277dc28077a95cafa4558a2d refs/remotes/origin/fuck-help -13e4c36c805ac5a8357a6f6278021e537df9a9ef refs/remotes/origin/gctune -63894e3314467ba55e29e178fbdf2f49d7485f07 refs/remotes/origin/gist-dom-embed -eaa8474ebbc08a58fabc70233b7a2490bbfc5803 refs/remotes/origin/gist-updating -81f9652dc9721651b7201be887908eb8943bffd5 refs/remotes/origin/hd-logo -a5f1ee269f0186e8582eb84aef4b2e54707645cb refs/remotes/origin/hiredis -9f193a24c1891874b516c915be2acb301f2e8007 refs/remotes/origin/http-proxies -5d2f45fcad855aa30c9071381cd91dda4a9ac65b refs/remotes/origin/improved-filterbar -1a1731528edc06eb229fc8553e56964816907d58 refs/remotes/origin/indextank -8b939afd49796f6eb4bb497c917869eb1801f87d refs/remotes/origin/ip-range -2c63c8d29019b1df5273b23d1dff5d8e00f3ab26 refs/remotes/origin/issue-needles -bc7539789400ccabcae2c42b6a9b5f96f106d4e9 refs/remotes/origin/issue_api_search -9a5a12c665e5667dc54ee1efc85270349a1abd96 refs/remotes/origin/issues-access-control -1367fabaaaef1d2c2a960926cbfbe7f1fe4317d0 refs/remotes/origin/issues-dashboard -925304f1e8bbba17d52d815e61408d4d16abb417 refs/remotes/origin/jruby -e31d660a5de4af47793cbfc77abcebab0c15960a refs/remotes/origin/jstorage -1425bc8e2b87743391ea017dad37d5b97ad4d5c0 refs/remotes/origin/liftoff -6bcb9cfb597cafb37a8b568012316e18968dfbf0 refs/remotes/origin/line-numbers -389d2ad4b2ca58b5832e5f398e303368b1307706 refs/remotes/origin/maintenance-mode -33a31194c9297f6fd9aac14fcbed9fc2e7144f0c refs/remotes/origin/master -b38974f9b13ae903b9987fd7ac770d1cfa099bb6 refs/remotes/origin/memprof -9cbf403896aa39276b2f7e7b69c695467e9bef22 refs/remotes/origin/mobile-gist -5b4e92b4d18b3d41292a5df83fccc370e74631fb refs/remotes/origin/mocha-upgrade -b83b8cc126462aaa4ee648505815858dd15631da refs/remotes/origin/mysql2 -e1b3ab259b7a03830899fba771a4fb96c8a955b0 refs/remotes/origin/new-jekyll -a272c9a449edee6140f9f03580e7c7bbcbde249b refs/remotes/origin/newsearch -68008205d68720946ede80bee72da86db6ebccae refs/remotes/origin/ng-measure -628faa9424af0fb4de01c079422da53141ddb65c refs/remotes/origin/no-fork-edit -bc2dd5885fef523ec33cb06bc1d9fc68e5759487 refs/remotes/origin/oauth2-smart-git -db430b7bf24bfca20e8cf742202709c03063afad refs/remotes/origin/perftools -f0bf91233594a75111a4beeff768dff7077e6deb refs/remotes/origin/plan-collab-usage -7a164c688e728d49b7e1d6dd8b4845ec56a62329 refs/remotes/origin/plax -12cdf2f2d802f97879cf648dabe7491a2fe8b95a refs/remotes/origin/popstate -94dccaeb8720e3aa4dd34761bad7cff3559bbafe refs/remotes/origin/push-compare -b182522a7093ece68a6d6fbfa1ca91e20d652a0e refs/remotes/origin/pygments -16f28925346f8d2b2093804fa55a51e9270db096 refs/remotes/origin/rack-lint -9b66b9f7c4759ae89a848e72a489649fc509b817 refs/remotes/origin/rails3 -381f32b4fe7240105daec67f6d6d87eeb212b14c refs/remotes/origin/railsup -5b16730a46ff3968520cac591266746598841c93 refs/remotes/origin/rbtrace -feb2362599d91a5b2a77d17e3f25fefc70f4b543 refs/remotes/origin/rbx -c8c7aa332f7e6cf1a0fb5228d69780cc1836debe refs/remotes/origin/rdiscount-forking -9c81ea6244094a051eb45bad2b5c26d941b417c0 refs/remotes/origin/remove-private-net-repos -8ff31d6581bc65918c50236de39bd692441b8ad8 refs/remotes/origin/repo-permission-cache -805f504bbcd12a87eb857e1833f9d9e42271c6c3 refs/remotes/origin/restore-autolinking -a44bab61103fd4a372567a37c5adce11e3791534 refs/remotes/origin/ruby19 -200019d11b6d24bc44bbcbb77a2aca4745bb255f refs/remotes/origin/serve-raw-subdomain -a7b9e12d43936d6185930c36c373cf6cc83fc2f2 refs/remotes/origin/sexy-oauth -cfd3cee6e094de83088b64f89ed63ad4446cccdb refs/remotes/origin/sprockets -e6dbebb2d11693e8905babb6cf3931c9edff5956 refs/remotes/origin/supergc -17dd20a4002bc62b9cc0ef63a136c9d3fcb9c865 refs/remotes/origin/support_trans -a9df89a32312e356090642cb762552062cc69788 refs/remotes/origin/syntax-high-2 -6429d509a6cfb885f60160b8f17516867038d1e8 refs/remotes/origin/test-refactor -8214410cb558f966c4bf08ab452b44e4c0907629 refs/remotes/origin/too-much-caffeine -8d05a9a4ddac3642b73aafb3e2bbad160f412210 refs/remotes/origin/tree -4fd17772adb96d11e14db7254eb9a72778550b8b refs/remotes/origin/uglify -1f8c62a77cda177d00b1cc6f306a0259faf7415e refs/remotes/origin/updated-inferred-routes -ffc2b2264f002f02f042b906147ef0f827057691 refs/remotes/origin/view-modes -bdf94b922ad2583828b37049811b7a8aed3eff58 refs/remotes/origin/wiki-http -3e4b6c5a5b37ca77b75723d397079d44d805136c refs/remotes/origin/xss-everywhere -abd3fb60b64c9516c36eeae3c115154e299650cd refs/remotes/stg/gist_imp -16a8305da34363e743d1bb4e3a80fa757db26f31 refs/remotes/stg/git-notes -13a95cfdd231d5cfa2cd8a5fd61a9e233e9066d4 refs/remotes/stg/i18n -7ef21240a4089d173ba1c26372fa570d97772622 refs/remotes/stg/master -3cb221fb43c6f3a8e602c69ee0d75dff59dc0c88 refs/remotes/stg/smarter-http -43b7ebd42f40abd114532e8baeb21fde57d46721 refs/stash -be87be3a49e75474e438a9a9f44b3deafb0af01c refs/tags/v0.1 -^b6d93107393dee6eebb05376a67f2e4dfcb44311 -695efbf54159dccf2c66ebc56231a54550e586bd refs/tags/v1.0 +41bc8c69075bbdb46c5c6f0566cc8cc5b46e8bd9 refs/heads/packed +5b5b025afb0b4c913b4c338a42934a3863bf3644 refs/heads/packed-test diff --git a/tests/t10-refs.c b/tests/t10-refs.c index 33d284099..3c9df434c 100644 --- a/tests/t10-refs.c +++ b/tests/t10-refs.c @@ -931,24 +931,9 @@ BEGIN_TEST(list1, "try to list only the symbolic references") git_repository_free(repo); END_TEST -BEGIN_TEST(corruption0, "Check a the packed-refs file is not corrupted") - git_reference *ref; - git_repository *repo; - - must_pass(git_repository_open(&repo, "/Users/vicent/src/github/.git")); - - /* Lookup the reference */ - must_pass(git_reference_lookup(&ref, repo, "refs/heads/redcarpet-deploy")); - - /* Now that the reference is deleted... */ - must_pass(git_reference_delete(ref)); - - git_repository_free(repo); -END_TEST - BEGIN_SUITE(refs) -/* ADD_TEST(readtag0); + ADD_TEST(readtag0); ADD_TEST(readtag1); ADD_TEST(readsym0); @@ -986,6 +971,5 @@ BEGIN_SUITE(refs) ADD_TEST(delete0); ADD_TEST(list0); - ADD_TEST(list1); */ - ADD_TEST(corruption0); + ADD_TEST(list1); END_SUITE |