فهرست منبع

ttfw_idf: IDFApp: add method to get SHA256(elf file)

Ivan Grokhotkov 6 سال پیش
والد
کامیت
952830ab12
1فایلهای تغییر یافته به همراه12 افزوده شده و 1 حذف شده
  1. 12 1
      tools/ci/python_packages/ttfw_idf/IDFApp.py

+ 12 - 1
tools/ci/python_packages/ttfw_idf/IDFApp.py

@@ -14,7 +14,7 @@
 
 """ IDF Test Applications """
 import subprocess
-
+import hashlib
 import json
 import os
 import sys
@@ -151,6 +151,7 @@ class IDFApp(App.BaseApp):
         self.idf_path = self.get_sdk_path()
         self.binary_path = self.get_binary_path(app_path, config_name, target)
         self.elf_file = self._get_elf_file_path(self.binary_path)
+        self._elf_file_sha256 = None
         assert os.path.exists(self.binary_path)
         if self.IDF_DOWNLOAD_CONFIG_FILE not in os.listdir(self.binary_path):
             if self.IDF_FLASH_ARGS_FILE not in os.listdir(self.binary_path):
@@ -319,6 +320,16 @@ class IDFApp(App.BaseApp):
 
         return partition_table
 
+    def get_elf_sha256(self):
+        if self._elf_file_sha256:
+            return self._elf_file_sha256
+
+        sha256 = hashlib.sha256()
+        with open(self.elf_file, 'rb') as f:
+            sha256.update(f.read())
+        self._elf_file_sha256 = sha256.hexdigest()
+        return self._elf_file_sha256
+
 
 class Example(IDFApp):
     def _get_sdkconfig_paths(self):