simple_test_util.h revision 3551c9c881056c480085172ff9840cab31610854
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_ 6#define NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/callback.h" 12 13namespace base { 14class FilePath; 15} 16 17namespace disk_cache { 18namespace simple_util { 19 20// Immutable array with compile-time bound-checking. 21template <typename T, size_t Size> 22class ImmutableArray { 23 public: 24 static const size_t size = Size; 25 26 ImmutableArray(const base::Callback<T (size_t index)>& initializer) { 27 for (size_t i = 0; i < size; ++i) 28 data_[i] = initializer.Run(i); 29 } 30 31 template <size_t Index> 32 const T& at() const { 33 COMPILE_ASSERT(Index < size, array_out_of_bounds); 34 return data_[Index]; 35 } 36 37 private: 38 T data_[size]; 39}; 40 41// Creates a corrupt file to be used in tests. 42bool CreateCorruptFileForTests(const std::string& key, 43 const base::FilePath& cache_path); 44 45} // namespace simple_backend 46} // namespace disk_cache 47 48#endif // NET_DISK_CACHE_SIMPLE_SIMPLE_TEST_UTIL_H_ 49