gtest 基於Android原始碼例項

2021-09-27 00:18:23 字數 2136 閱讀 5340

gtest是乙個跨平台的c++單元測試框架。

android下使用gtest單元測試。

1編譯

2建立測試目錄gtestdemo,目錄結構為:

## [android.mk] 結構如下:

#####################################

local_path := $(call my-dir)

prj_inc_path += $(local_path)/*** // 1這是源**頭檔案目錄,當前目錄為建立的test目錄

include $(clear_vars)

local_module := ***test // 2自定義的可執行程式檔名

local_src_files := test/test_case.cpp

local_src_files += cpp/mtest.cpp

local_c_includes := $(local_path)/*** // 3同注釋1

local_static_libraries := libgtest // *必寫項

local_cflags := --coverage // *必寫項

local_ldflags := --coverage // *必寫項

include $(build_executable)

#####################################

## [mtest.h] 結構如下:

#####################################

int mytest(int intvalue);

## [mtest.cpp] 結構如下:

#####################################

#include "mtest.h"

int mytest(int intvalue)

else if (intvalue < 100)

return intvalue;

}## [test_case.cpp] 結構如下:

#####################################

#include #include "cpp/mtest.h"

test(mytest, 1)

test(mytest, 2)

test(mytest, 3)

int main(int argc, char *ar**)

3編譯gtestdemo生成目錄為

[100% 10/10] install: out/target/product/yebisu/system/bin/***test(對應於.mk的local_module)

#### build completed successfully (42 seconds) ####

4將生成的可執行檔案 push 進車載機,執行命令如下

5生成*.info檔案

前提:{

1)進入本地計算機的/usr/bin目錄,新建 llvm-cov.sh 檔案,

sudo vi llvm-cov.sh 輸入如下內容:

#!/bin/bash

exec ***/linux/android/prebuilts/clang/host/linux-x86/clang-4691093/bin/llvm-cov gcov "$@"

注:上面語句中的空格 不可以省略。給 llvm-cov.sh 檔案執行許可權(chmod +x llvm-cov.sh)。

執行命令 genhtml -o result  *.info。

例如: genhtml -o result myinfo.info

7開啟result資料夾中的index.html

可以得到我們的測試通過率。

ConcurrentHahMap 基於原始碼解析

目錄 1 簡單總結 2 jdk1.7 segments hashentry陣列 鍊錶解析 3 jdk1.8 雜湊表 紅黑樹 cas 解析 參考 如下圖所示,segments繼承了可重入鎖reentrantlock,每個片段有乙個鎖,叫做 分段鎖 1 segment 分段鎖 concurrenthas...

Android之推薦看的Android原始碼

handler message looper handler被稱為 非同步提交器 是android開發入門教程必定談及的東西,這也是activity等元件的工作機制需要用到的東西,是 資料驅動 框架的重要組成,作為閱讀原始碼的入門最適合不過。activity和service 作為經常使用到的元件,閱...

基於httpd搭建yum源

作業系統 centos6.5 登陸1.1.1.1 1.安裝httpd,creatrepo工具 2.etc httpd conf httpd.conf所有配置均照預設的即可,預設根目錄為 var www html,3.建立乙個存放rpm包的位置,在根目錄下建立centos目錄,將rpm拷貝到 var ...