CheckRequirements() had various issues that are cleaned up here, 1) Move from C string parsing to C++ 2) Moved from C data structures to C++, including fixing memory leaks. 3) Removed the 'cur_product' global and the 'query_save' function that stores it 4) Actually writing tests for the parsing function for android-info.txt 5) Check that a variable needs to be checked for a given product before trying to read it. Previously, fastboot would fail if a variable isn't recognized on a device, even if the check should be ignored. A lot of flexibility is allowed for the input strings, to keep backwards compatibility with the previous parsers. Test: fastboot works, unit tests Change-Id: Idc3bba8b8fe829d8eefe5f6c495e63a9441c0b60
20 lines
527 B
C++
20 lines
527 B
C++
#pragma once
|
|
|
|
#include <inttypes.h>
|
|
#include <stdlib.h>
|
|
|
|
#include <string>
|
|
|
|
#include <bootimg.h>
|
|
|
|
/* util stuff */
|
|
double now();
|
|
void set_verbose();
|
|
|
|
void Status(const std::string& message);
|
|
|
|
// These printf-like functions are implemented in terms of vsnprintf, so they
|
|
// use the same attribute for compile-time format string checking.
|
|
void die(const char* fmt, ...) __attribute__((__noreturn__))
|
|
__attribute__((__format__(__printf__, 1, 2)));
|
|
void verbose(const char* fmt, ...) __attribute__((__format__(__printf__, 1, 2)));
|