blob: f2d64ec4673bd2a31349ecc4dec1c56843c0ab35 [file] [log] [blame]
// Copyright 2014 The Android Open Source Project
//
// This software is licensed under the terms of the GNU General Public
// License version 2, as published by the Free Software Foundation, and
// may be copied, distributed, and modified under those terms.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
#ifndef ANDROID_KERNEL_KERNEL_UTILS_TESTING_H
#define ANDROID_KERNEL_KERNEL_UTILS_TESTING_H
namespace android {
namespace base {
class String;
} // namespace base
namespace kernel {
// Type of a function used to retrieve the textual description of a given
// file at |filePath|. On success, return true and sets |*text| to the
// description text, as if running through the 'file' command on Unix.
// |opaque| is a client-provided value set by calling
// setFileDescriptionFunction() below.
typedef bool (GetFileDescriptionFunction)(void* opaque,
const char* filePath,
android::base::String* text);
// Change the implementation of the function that extracts textual
// descriptions from a given file. |file_func| is a pointer to the
// new function, and |file_opaque| is the value that will be passed
// as its first parameter. Note that if |file_func| is NULL, the
// default implementation will be selected instead.
//
// Only use this during unit-testing to force different description
// values on arbitrary file content.
void setFileDescriptionFunction(GetFileDescriptionFunction* file_func,
void* file_opaque);
} // namespace kernel
} // namespace android
#endif // ANDROID_KERNEL_KERNEL_UTILS_TESTING_H