chromium - 测试程序使用base空间的类

前言

上个实验,只在chromium中加了一个标准的win32console的工程,现在实验了,使用base命令空间的类的工程修改。

不只是程序要包含base类的头文件, Z:\chromium\src\base\test\BUILD.gn 也要修改,依赖base命名空间,才能编译过。

实验

测试程序

// @file Z:\chromium\src\base\test\test_by_me\main.cpp
// @brief write some test code to study chromium project

/**
# cd /d Z:\chromium\src\
# gn --ide=vs args out\my_x86_d
# gn ls out\my_x86_d > d:\my_tmp\gn_list_target.log
# 新加的测试工程位置//base/test:test_by_me
# autoninja -C out\my_x86_d test_by_me
*/

#include <stdlib.h>
#include <stdio.h>

#include "base/bind.h" // for base:Bind()
#include "base/logging.h" // for LOG()
#include "base/callback.h" // for base ::Callback()

#define PROG_NAME "test_my_me"

void fn_test();

int main(int argc, char** argv)
{
	printf(">> %s\n", PROG_NAME);
//	printf("hello chromium\n");

	fn_test();

	system("pause");
	return EXIT_SUCCESS;
}

int Return5() { return 5; }

void fn_test()
{
	base::Callback<int(void)> func_cb = base::Bind(&Return5);

	DLOG(WARNING) << ">> fn_test()";
	LOG(INFO) << func_cb.Run();  // Prints 5.
	DLOG(WARNING) << func_cb.Run();
}

配置文件的修改

Z:\chromium\src\base\test\BUILD.gn

  android_aidl("test_support_java_aidl") {
    testonly = true
    import_include = [
      "android/java/src",
      "//base/android/java/src",
    ]
    sources = [
      "android/java/src/org/chromium/base/ITestCallback.aidl",
      "android/java/src/org/chromium/base/ITestController.aidl",
    ]
  }
}

# Trivial executable which outputs space-delimited argv to stdout,
# used for testing.
executable("test_child_process") {
  testonly = true
  sources = [
    "test_child_process.cc",
  ]
  deps = [
    "//build/config:exe_and_shlib_deps",
  ]
}

executable("test_by_me") {
  sources = [
    "test_by_me/main.cpp",
  ]
  deps = [
    "//base",
  ]
}

运行效果

打印到了日志 Z:\chromium\src\out\my_x86_d\debug.log

[1217/131353.498:WARNING:main.cpp(40)] >> fn_test()
[1217/131353.499:INFO:main.cpp(41)] 5
[1217/131353.499:WARNING:main.cpp(42)] 5

猜你喜欢

转载自blog.csdn.net/LostSpeed/article/details/85047978