Commit 32cf40bc authored by Geoff Simmons's avatar Geoff Simmons

add tests for the blob object interface

parent fcb3c398
# looks like -*- vcl -*-
varnishtest "blob object"
# VMOD blobcode must be installed
varnish v1 -vcl {
import blobsha256 from
"${vmod_topbuild}/src/.libs/libvmod_blobsha256.so";
import blobcode;
backend b { .host = "${bad_ip}"; }
sub vcl_init {
new emptyblob = blobcode.blob(IDENTITY, "");
new empty = blobsha256.blob(emptyblob.get());
new msgdigestblob = blobcode.blob(IDENTITY, "message digest");
new msgdigest = blobsha256.blob(msgdigestblob.get());
new alphanumblob = blobcode.blob(IDENTITY,
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
new alphanum = blobsha256.blob(alphanumblob.get());
new ablob = blobcode.blob(IDENTITY, "a");
new a = blobsha256.blob(ablob.get());
new abcblob = blobcode.blob(IDENTITY, "abc");
new abc = blobsha256.blob(abcblob.get());
new alphalcblob = blobcode.blob(IDENTITY,
"abcdefghijklmnopqrstuvwxyz");
new alphalc = blobsha256.blob(alphalcblob.get());
new pangramblob = blobcode.blob(IDENTITY,
"The quick brown fox jumps over the lazy dog");
new pangram = blobsha256.blob(pangramblob.get());
new alphasoupblob = blobcode.blob(IDENTITY,
"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq");
new alphasoup = blobsha256.blob(alphasoupblob.get());
new digitsblob = blobcode.blob(IDENTITY,
"12345678901234567890123456789012345678901234567890123456789012345678901234567890");
new digits = blobsha256.blob(digitsblob.get());
# all 256 byte values in ascending, big-endian order
new allbytesblob = blobcode.blob(BASE64,
"AQACAQMCBAMFBAYFBwYIBwkICgkLCgwLDQwODQ8OEA8REBIRExIUExUUFhUXFhgXGRgaGRsaHBsdHB4dHx4gHyEgIiEjIiQjJSQmJScmKCcpKCopKyosKy0sLi0vLjAvMTAyMTMyNDM1NDY1NzY4Nzk4Ojk7Ojw7PTw+PT8+QD9BQEJBQ0JEQ0VERkVHRkhHSUhKSUtKTEtNTE5NT05QT1FQUlFTUlRTVVRWVVdWWFdZWFpZW1pcW11cXl1fXmBfYWBiYWNiZGNlZGZlZ2ZoZ2loamlramxrbWxubW9ucG9xcHJxc3J0c3V0dnV3dnh3eXh6eXt6fHt9fH59f36Afw==");
new allbytes = blobsha256.blob(allbytesblob.get());
}
sub vcl_recv {
return(synth(200));
}
sub vcl_synth {
set resp.http.empty
= blobcode.encode(HEXLC, empty.hash());
set resp.http.msgdigest
= blobcode.encode(HEXLC, msgdigest.hash());
set resp.http.alphanum
= blobcode.encode(HEXLC, alphanum.hash());
set resp.http.a
= blobcode.encode(HEXUC, a.hash());
set resp.http.abc
= blobcode.encode(HEXUC, abc.hash());
set resp.http.alphalc
= blobcode.encode(HEXUC, alphalc.hash());
set resp.http.pangram
= blobcode.encode(HEXUC, pangram.hash());
set resp.http.alphasoup
= blobcode.encode(HEXUC, alphasoup.hash());
set resp.http.digits
= blobcode.encode(HEXUC, digits.hash());
set resp.http.allbytes
= blobcode.encode(HEXLC, allbytes.hash());
}
} -start
client c1 {
txreq
rxresp
expect resp.status == 200
# from libvarnish SHA256_Test
expect resp.http.empty == "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
expect resp.http.msgdigest == "f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650"
expect resp.http.alphanum == "db4bfcbd4da0cd85a60c3c37d3fbd8805c77f15fc6b1fdfe614ee0a7c8fdb4c0"
# from librhash
expect resp.http.a == "CA978112CA1BBDCAFAC231B39A23DC4DA786EFF8147C4E72B9807785AFEE48BB"
expect resp.http.abc == "BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD"
expect resp.http.alphalc == "71C480DF93D6AE2F1EFAD1447C66C9525E316218CF51FC8D9ED832F2DAF18B73"
expect resp.http.pangram == "D7A8FBB307D7809469CA9ABCB0082E4F8D5651E46D3CDB762D02D0BF37C9E592"
expect resp.http.alphasoup == "248D6A61D20638B8E5C026930C3E6039A33CE45964FF2167F6ECEDD419DB06C1"
expect resp.http.digits == "F371BC4A311F2B009EEF952DD83CA80E2B60026C8E935592D0F9C308453C813E"
# verified with: base 64 -d | sha256sum
expect resp.http.allbytes == "f62191c9a2deb78660d34fdf7070f1943211d46d13d1c26d9d8a1dc5bcb3e997"
} -run
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment