Euphony test CMakeList #50
Replies: 7 comments 35 replies
-
github에는 엄청 이쁘게 나오네요ㅠ 안드로이드 스튜디오에서는 죄다 초록색으로 나와서 구분하느라 나름 힘들었는데ㅠㅠ |
Beta Was this translation helpful? Give feedback.
-
execute_process(COMMAND ${ADB} shell LD_LIBRARY_PATH=${TARGET_TEST_LIB_DIR} ${TARGET_TEST_LIB_DIR}/testEuphony
OUTPUT_VARIABLE GTEST_EUPHONY_OUTPUT
RESULT_VARIABLE GTEST_RESULT
ERROR_VARIABLE GTEST_ERROR_OUTPUT
)
if( ${GTEST_RESULT} GREATER 0 )
string(STRIP ${GTEST_EUPHONY_OUTPUT} GTEST_EUPHONY_OUTPUT)
string(REPLACE "\n\n" "\r[NEXT]\r" GTEST_EUPHONY_OUTPUT ${GTEST_EUPHONY_OUTPUT})
string(REPLACE "\n" "\r" GTEST_EUPHONY_OUTPUT ${GTEST_EUPHONY_OUTPUT})
message(FATAL_ERROR "** Gtest Failure (${GTEST_RESULT}) **\r${GTEST_EUPHONY_OUTPUT}")
else()
message("**** Gtest Success ****")
endif() 참고로 현재 gtest가 도는 방식은 add_custom_command 와 execute_process 의 장점을 섞은 사례라고 보면 됩니다 :) |
Beta Was this translation helpful? Give feedback.
-
안드로이드 build cache 삭제미션 기한이 오늘까진데, 추석지내느라 잠시 소흘했네요 ㅠㅠ 지금 문제를 해결할 만한 방법을 하나 발견한 것 같아서 글 올립니다! 조사해본 결과 안드로이드는 기본적으로 build시간이 너무 오래 걸리는 문제를 막기 위해서 build시에 cache를 사용합니다. 그래서 현재 #46 이슈 같은 경우에도 이미 성공적인 빌드가 일어났기 때문에 디바이스가 변경됐음에도 이를 인지하지 못하고 계속해서 같은 방식으로만 build를 진행합니다.
그래서 캐시가 저장되는 저장소를 추적한 다음, cache를 직접 삭제 해보았습니다. 상황은 이렇습니다.
CMakeList의 명령어를 Script로 넣어서 빌드 이후에 진행하게도 해봤는데 이또한 기기를 변경할 때의 오류만 잡아줬을 뿐 #46 은 해결하지 못했습니다. 하지만, cache를 지우는 방법은 앞서 얘기한 문제와 #46도 해결하면서 .cxx디렉토리를 지우는 방식 보다 훨씬 빠른 속도로 진행됩니다.(.cxx 디렉토리를 재생성하지 않아서) 따라서 해결 방식은 아래 3개 정도로 볼 수 있겠습니다.
2번 방식이 제일 괜찮은 것 같아서 gradle.properties로 설정을 해봤는데 안됩니다 ㅠㅠ, 지금은 마음 접고 CMake로 디렉토리 지우는 방법을 공부하고 있습니다!
|
Beta Was this translation helpful? Give feedback.
-
와 감사합니다 저도 CMake 처음 접해서 눈앞이 캄캄했었는데 도움 많이 받았습니다 ㅠㅠ |
Beta Was this translation helpful? Give feedback.
-
여러가지 방법 시도해보다가 질문이 생겼습니다!! 예를들면, euphony/euphony/src/main/cpp/tests/CMakeLists.txt Lines 38 to 40 in 5496692 를 아래와 같이 바꾸고 저장해줍니다 ( 단순 줄바꿈) . 심지어 이 방법은 빌드 속도가 .cxx 폴더를 삭제하는 것보다 훨씬 빨랐어요!!
Refresh Linked C++ Project 옵션도 사용해보고, 위에 써주신 내용 참고해서 캐시 삭제도 다양하게 시도해보고, add_custom_command로 디바이스 인식 시점을 변경시켜 보려고도 해봤는데 다 디바이스 변경을 인식하지 못했고, 넘 어렵네요! 위 방법은 어떤 원리로 적용되는 것일까요 ..... 😥 해결의 실마리가 되었으면 좋겠네요 ㅠㅠㅠㅠ |
Beta Was this translation helpful? Give feedback.
-
혹시 테스트 잘 안되시는 분들 gradle 버전 몇 쓰시나요?? |
Beta Was this translation helpful? Give feedback.
-
제가 말한 디렉토리를 CMakelist내에서 지워보려고 계속 시도해봤는데 자꾸 이상한 오류가 떠서 대신에 짝을 이루는 bin 파일(C:\Users\YoungHong\.gradle\caches\transforms-2\files-2.1\2fc06640f22f0b2c2519ff4c360c6065.bin)을 file(REMOVE ${BUILD_CACHE}) 를 사용해서 지워봤더니 프로젝트가 원하던대로 잘 돌아갑니다.
externalNativeBuild {
cmake {
...
arguments "-DBUILD_CACHE=C:\\Users\\YoungHong\\.gradle\\caches\\transforms-2\\files-2.1\\2fc06640f22f0b2c2519ff4c360c6065.bin"
...
}
} 로 설정해줬습니다. |
Beta Was this translation helpful? Give feedback.
-
혼자서 멋있게 #46 이슈를 해결해보고 싶었는데 역부족이었던 것 같습니다 ㅠㅠ
혹시 좋은 방법이 있으시면 공유해서 같이 해결해 보면 좋을 것 같아서 discussion을 만들어봤습니다!
CMakeList를 처음 접해봤는데 저한테는 너무 낯설어서 이것 저것 찾아보고 출력해보면서 정리해보다가 CMakeList가 처음이신분들이 저말고도 계실 것 같아서 참고용으로 올립니다! 저도 잘 모르고 적은거라 많이 틀릴 수도 있어서 참고용으로만 봐주시면 될 것 같아요ㅠㅠ
CMakeList 고수님들 있으시면 읽어봐주시고 잘못 된 부분 말씀 해주시면 감사하겠습니다!
제 생각에는 문제가 발생하는 이유가 ADB와 if문이 처음 빌드할 때 한 번만 실행돼서 디바이스가 바뀌면 다시 if문을 실행시키지 못해서 이러한 문제가 발생하는 것 같습니다. 이 if문과 ADB도 add_custom_command처럼 빌드 이후에 디바이스가 바뀐걸 한 번 더 확인하고 실행해주면 될 것 같은데 아직 방법을 못찾았습니다ㅠㅠ 혹시 좋은 의견 있으시면 말씀해주세요!
추가적으로 이것저것 찾다가 안드로이드 스튜디오에서 구글테스트 하는 방법에 대한 깃헙 주소도 찾아서 올립니다!
https://github.com/Mr-Goldberg/android-studio-googletest/blob/master/README.md
Beta Was this translation helpful? Give feedback.
All reactions