From ffc931dfb8829c8ae36b171d47f3230e10b67cea Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sat, 9 Dec 2017 12:57:02 +0200 Subject: Add support for calculating SHA1 checksums --- tests/sha1/buildfile | 8 ++++++++ tests/sha1/driver.cxx | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 tests/sha1/buildfile create mode 100644 tests/sha1/driver.cxx (limited to 'tests/sha1') diff --git a/tests/sha1/buildfile b/tests/sha1/buildfile new file mode 100644 index 0000000..1d6cece --- /dev/null +++ b/tests/sha1/buildfile @@ -0,0 +1,8 @@ +# file : tests/sha256/buildfile +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +import libs = libbutl%lib{butl} +libs += $stdmod_lib + +exe{driver}: {hxx cxx}{*} $libs diff --git a/tests/sha1/driver.cxx b/tests/sha1/driver.cxx new file mode 100644 index 0000000..5f5bb69 --- /dev/null +++ b/tests/sha1/driver.cxx @@ -0,0 +1,54 @@ +// file : tests/sha1/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include + +#ifndef __cpp_lib_modules +#include +#include +#endif + +// Other includes. + +#ifdef __cpp_modules +#ifdef __cpp_lib_modules +import std.core; +import std.io; +#endif +import butl.sha1; +#else +#include +#endif + +using namespace std; +using namespace butl; + +int +main () +{ + assert (string (sha1 ().string ()) == + "da39a3ee5e6b4b0d3255bfef95601890afd80709"); + + assert (string (sha1 ("").string ()) != + "da39a3ee5e6b4b0d3255bfef95601890afd80709"); + + assert (string (sha1 ("123").string ()) == + "cc320164df1a2130045a28f08d3b88bc5bbcc43a"); + + assert (string (sha1 ("123", 3).string ()) == + "40bd001563085fc35165329ea1ff5c5ecbdbbeef"); + + { + sha1 h; + h.append ("1"); + h.append (string ("2")); + h.append ("3", 1); + + auto& b (h.binary ()); + assert (b[0] == 0x58 && b[19] == 0xfd); + + string s (h.string ()); + assert (s == "58c596bafad8d007952934af1db9abc5401d4dfd"); + } +} -- cgit v1.1