summaryrefslogtreecommitdiff
path: root/port/sha1_test.cc
diff options
context:
space:
mode:
authordgrogan@chromium.org <dgrogan@chromium.org@62dab493-f737-651d-591e-8d6aee1b9529>2011-04-19 23:11:15 +0000
committerdgrogan@chromium.org <dgrogan@chromium.org@62dab493-f737-651d-591e-8d6aee1b9529>2011-04-19 23:11:15 +0000
commit69c6d38342a1fab5f7f2921aa2e9c0e60ba90e35 (patch)
treebea96813c653d9e32277cb86cb517ddd90d0595c /port/sha1_test.cc
parentb743906eeabc925f3e824d91a9747012bf249e2f (diff)
downloadleveldb-69c6d38342a1fab5f7f2921aa2e9c0e60ba90e35.tar.gz
reverting disastrous MOE commit, returning to r21
git-svn-id: https://leveldb.googlecode.com/svn/trunk@23 62dab493-f737-651d-591e-8d6aee1b9529
Diffstat (limited to 'port/sha1_test.cc')
-rw-r--r--port/sha1_test.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/port/sha1_test.cc b/port/sha1_test.cc
new file mode 100644
index 0000000..b182e67
--- /dev/null
+++ b/port/sha1_test.cc
@@ -0,0 +1,39 @@
+// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. See the AUTHORS file for names of contributors.
+
+#include "port/port.h"
+#include "util/testharness.h"
+
+namespace leveldb {
+namespace port {
+
+class SHA1 { };
+
+static std::string TestSHA1(const char* data, size_t len) {
+ char hash_val[20];
+ SHA1_Hash(data, len, hash_val);
+ char buf[41];
+ for (int i = 0; i < 20; i++) {
+ snprintf(buf + i * 2, 41 - i * 2,
+ "%02x",
+ static_cast<unsigned int>(static_cast<unsigned char>(
+ hash_val[i])));
+ }
+ return std::string(buf, 40);
+}
+
+TEST(SHA1, Simple) {
+ ASSERT_EQ("da39a3ee5e6b4b0d3255bfef95601890afd80709", TestSHA1("", 0));
+ ASSERT_EQ("aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", TestSHA1("hello", 5));
+ std::string x(10000, 'x');
+ ASSERT_EQ("f8c5cde791c5056cf515881e701c8a9ecb439a75",
+ TestSHA1(x.data(), x.size()));
+}
+
+}
+}
+
+int main(int argc, char** argv) {
+ return leveldb::test::RunAllTests();
+}