You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# OOP Exercise - Google Test
## 使用方法
clone 專案
```sh
git clone https://gitea.cglab.cs.nccu.edu.tw/yhchen/gtest_exercise.git
```
建立 build 資料夾,所有編譯需要的檔案會被建立在這個資料夾裡面
```sh
mkdir build
cd build
```
使用 cmake 建立 makefile, 並編譯檔案
```sh
cmake ..
make
```
進到 `unittest` 目錄,如果有看到 `utest` 執行檔,代表編譯順利完成
## 練習內容
在 `src` 目錄中含有 `sphere` 物件的宣告及實作,但是這個程式碼中有一些錯誤的部分,同學需要自己撰寫 `unittest` 來找出程式碼錯誤的部分並做出修正
## 覆蓋率計算
這個專案的 cmake 檔案包含計算覆蓋率的工具,會在編譯 `unittest` 及 `src` 目錄時同時產生覆蓋率統計的檔案在 `build/資料夾位置/CMakeFiles/專案名稱.dir/檔案名稱.cc.gcno` ,在執行過程式之後,可以執行下列指令顯示覆蓋率
```sh
gcov <gcno檔位置>
```
在 macos 中,預設使用的內建 gcov 會無法開啟生成的檔案,需要使用 homebrew 安裝的 gcov( 安裝 gcc 時會自動安裝),通常為 `gcov-12` ,執行下列指令能夠檢查是否使用內建的 gcov
```sh
which gcov
```
如果輸出為 `/usr/bin/gcov` ,就代表使用的是內建的 gcov。
## 附錄
### Linux 環境下安裝 cmake (以 ubuntu 為例)
若環境有需要,請自行加上 `sudo`
```sh
apt update
apt install g++ cmake
```
### Windows 環境下安裝 cmake
可以安裝 Windows Subsystem of Linux, 並按照上述 Linux 的步驟操作
### MacOS 環境下安裝 cmake
需先安裝 brew, 安裝完成後執行
```sh
brew install gcc cmake
```
若使用的是 M1 mac, 需要手動將 g++ 加入 PATH, 請自行 google