1ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org/* 2ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org * Copyright 2014 Google Inc. 3ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org * 4ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org * Use of this source code is governed by a BSD-style license that can be 5ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org * found in the LICENSE file. 6ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org */ 7ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org 8ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org#include "SkBase64.h" 9ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org 10ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org#include "Test.h" 11ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org 129ea53f93e79ba312c4b3943923450a8b4aa57c82tfarinaDEF_TEST(SkBase64, reporter) { 13ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org char all[256]; 147017288811091427c15da5f97a14ac85a6585ec4robertphillips@google.com for (int index = 0; index < 256; ++index) { 15ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org all[index] = (signed char) (index + 1); 16ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org } 17ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org 187017288811091427c15da5f97a14ac85a6585ec4robertphillips@google.com for (int offset = 0; offset < 6; ++offset) { 19ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org size_t length = 256 - offset; 202880df2609eba09b555ca37be04b6ad89290c765Tom Hudson size_t encodeLength = SkBase64::Encode(all + offset, length, nullptr); 21ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org SkAutoTMalloc<char> src(encodeLength + 1); 22ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org SkBase64::Encode(all + offset, length, src.get()); 23fbaace082745a0e301186b2d3b84af62e2fb87ecbsalomon src[SkToInt(encodeLength)] = '\0'; 24ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org SkBase64 tryMe; 25ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org tryMe.decode(src.get(), encodeLength); 26ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org REPORTER_ASSERT(reporter, (strcmp((const char*) (all + offset), tryMe.getData()) == 0)); 27ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org delete[] tryMe.getData(); 28ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org } 29ceddfeb2af574d0a5273fa1803274d25eca73544tfarina@chromium.org} 30