專利名稱:并行源代碼生成、編譯及驅動執行的測試方法
技術領域:
本發明涉及計算機技術領域,更具體地說,本發明涉及一種針對并行語言、編譯器及運行時庫的并行源代碼生成、編譯及驅動執行的測試方法。
背景技術:
隨著,高性能計算機規模的日趨龐大,云計算、網格計算、物聯網等新行業領域的興起,并行語言向深度和廣度的發展越來越顯著,發展潛力越來越大,對國防、民生諸多領域的影響也越來越突出。并行語言是開發和設計并行程序的唯一手段。同時,由于并行程序設計的特點,并行計算發展的歷史淵源,并行語言在并行程序的開發、設計和運行環境等方面存在諸多問題,也給其測試帶來較大難題,嚴重制約了并行計算的發展。
在并行程序開發與設計方面問題①并行程序設計不僅包含了串行程序設計,而且還包含了更多的富有挑戰性的并行問題;②串行程序設計僅有一個普遍被接受的馮.諾依曼模型,而并行計算模型雖有很多,但沒有一個被共同認可;③并行程序設計還受到特定運行時環境的影響。在并行程序的運行環境方面問題①并行程序的運行邏輯遠比串行程序復雜,對運行環境的要求遠比串行程序高得多、復雜得多;②運行環境的缺陷直接威脅到并行程序運行的正確性。目前,國外主流的高性能計算機研究公司或機構有IBM、惠普、NEC、Cray等。并行編程模型/語言有UPC、MPI、X10、Chapel、OpenMP, OpenCL、PVM、HPF等,其主要是對標準C^Fortran等串行語言的擴展。這兩年,也有公司在研究基于Java、C#等語言的并行編程。在國內,主要有“天河”、“曙光”、“神威”三大系列高性能計算機系統,均延承或自主開發了相應的并行編程模型/語言。在并行語言測試方面,以開發并行模型/語言為主導的各家公司,也相繼對傳統串行調試工具或測試模型進行了擴展,如H)B、JUnit的并行擴展等,以及基于特定并行模型/語言的測試包,如UUTF、MPICH-Test等。然而對并行語言進行測試卻諸多不足①起步較晚,測試多數是針對特定的并行語言,且受特定的并行程序開發與設計方法限制;②由于并行計算模型、并行體系結構不同和高性能計算機“代”的更迭,測試沒有系統性和規范性,也缺乏方法和手段,更缺乏有效的測試工具并行執行存在隨機性,有時并行方面的缺陷需要運行很多遍才會暴露出來;④并行程序運行時監控困難,綜合運行環境因素的并行程序運行時監控更難;⑤并行規模因素對測試的影響,也是不容忽視的問題。
發明內容
本發明所要解決的技術問題是針對現有技術中存在上述缺陷,提供一種基于配置文件和樣本并行源代碼的自動化并行源代碼生成、編譯及驅動執行的并行語言、編譯器及運行時庫測試方法,該方法相對于基于特定并行模型/語言的測試方法來說,具有較強的系統性、可擴展性和普適性。根據本發明,提供了一種并行源代碼生成、編譯及驅動執行的測試方法,其包括測試流程控制模塊、生成用例并行源代碼模塊以及運行和監控用例并行作業模塊;其中,所述生成用例并行源代碼模塊用于在所述測試流程控制模塊的驅動下,分析和解析測試用例配置得到并行源代碼生成配置和并行編譯選項配置,接受測試流程控制模塊傳遞的全局并行編譯選項,生成所需的用例并行源代碼和Makefile文件;并且,所述運行和監控用例并行作業模塊用于在所述測試流程控制模塊的驅動下,分析和解析測試用例配置以得到并行作業運行前準備配置和并行作業運行配置,接受所述測試流程控制模塊傳遞的全局并行作業提交選項和并行作業狀態監控選項,運行和控制并行作業運行。優選地,所述測試流程控制模塊包括第一主控步驟,用于進行測試運行環境的分析和配置,確定測試用例列表或測試用例目錄;第二主控步驟,用于分析測試用例列表或遍歷測試用例配置目錄,確定需要測試的用例集合;第三主控步驟,用于調用生成用例并行源 代碼模塊,逐次解析測試用例配置和生成所需的用例并行源代碼和Makefile文件;第四主控步驟,用于利用第三主控步驟生成的Makefile文件,驅動并行編譯器對第三主控步驟生成的用例并行源代碼進行編譯和生成并行目標代碼;第五主控步驟,用于調用運行和監控用例并行作業模塊;判斷步驟,用于在第五主控步驟結束后判斷是否還有其他測試用例未執行,若第五主控步驟結束后還有其他測試用例未執行,則轉至第二主控步驟并繼續進行測試下一個用例;若沒有需要執行的測試用例,則轉至第六主控步驟;第六主控步驟,用于分析第四主控步驟的并行編譯過程日志,分析第五主控步驟的并行作業運行過程日志和并行作業運行結果,并與預期結果進行比對,以確定并行編譯器的編譯過程是否符合預期結果,以及確定并行作業在并行程序運行環境下的運行結果是否符合預期結果。優選地,所述生成用例并行源代碼模塊包括第一生成步驟,用于對測試用例配置進行分析,獲取構建并行源代碼所需的并行源代碼生成配置和構建Makefile所需的并行編譯選項配置;第二生成步驟,用于從并行源代碼生成配置中獲取FRAME信息,從基礎架構樣本中找出相匹配的.c文件,并拷貝至臨時工作目錄中命名為Main, c ;第三生成步驟,用于從并行源代碼生成配置中獲取INCLUDE信息,從測試場景樣本中查找匹配的測試場景定義、測試輔助函數庫,并將其拷貝至臨時工作目錄,然后實例化第二生成步驟中Main, c的 include定義;第四生成步驟,用于從并行源代碼生成配置中獲取DATA信息,將第三生成步驟中的測試場景相關源代碼和處理后的Main, c中的變量類型宏定義實例化為具體的基本變量類型或并行語言擴展的共享、SIMD變量類型,將編譯指示宏定義實例化為具體的編譯指示宏定義;第五生成步驟,用于從并行源代碼生成配置中獲取MAKE信息,從Makefile樣本中查找匹配的Makefile文件,拷貝至臨時工作目錄,然后將Makefile中TARGET實例化為測試用例英文名,SOURCE實例化為第三生成步驟中的測試場景相關.c文件和Main, c,HEADER實例化為第三生成步驟中的測試場景相關.h文件,接著根據全局并行編譯選項和用例并行編譯選項配置,并將Makefile中的CFLAGS和LDFLAGS實例化為具體的編譯和鏈接選項。優選地,所述運行和監控用例并行作業模塊包括第一步驟,用于對測試用例配置進行分析,獲取并行作業提交所需的并行作業運行前準備配置和并行作業運行配置;第二步驟,用于根據并行作業運行前準備配置信息,根據并行作業實際需要,從輔助數據目錄中拷貝或運行輔助腳本新建或運行系統命令新建并行作業所需數據文件;第三步驟,用于根據并行作業運行前準備配置信息,根據并行作業實際需要,在運行節點中分發和部署并行作業所需的并行目標代碼、并行作業數據文件;第四步驟,用于根據全局并行作業提交選項和用例并行作業運行配置,實例化并行作業提交程序的運行選項和并行目標代碼的運行參數,并驅動并行作業提交程序提交運行用例并行目標代碼;第五步驟,用于根據并行作業狀態監控選項,在預置的時間間隔內查看并行作業的運行狀態是否為正常、并行作業運行結果文件是否有新記錄等;并行作業的運行狀態異常或運行結果文件超出預置查看次數仍未更新時,申請結束并行作業;并行作業結束后,根據退出狀態和結果文件的完整性,驗證并行作業是否為正常退出,若異常退出則轉至第四步驟重新提交,若正常退出或重新提交超出預置次數則轉至第六步驟;第六步驟,用于從運行節點中收集和匯總并行作業運行結果。本發明提供的方法相對于基于特定并行模型/語言的測試方法來說,具有較強的系統性、可擴展性和普適性。該方法通過將具體的并行語言在基礎語言基礎上的語法擴展、并行運行時庫API等可測試特性,分解為較為通用的基礎框架和特定可參數化的測試場景,并通過測試用例配置進行實例化,以實現測試用例并行源代碼的生成。對于不同的并行模型/語言來說,僅需要分析共性測試場景的差異性和補充特性測試場景,并通過測試用例配置及其集合來構建特定并行模型/語言相適宜的測試。并且,本發明提供的方法可以提供測試用例設計的可復用性,針對并行語言、編譯器及運行時庫的并行特性進行參數化,將測試用例設計集中于可復用的測試場景設計及對測試場景的參數化配置,提升了測試用例設計的效率和價值。·
結合附圖,并通過參考下面的詳細描述,將會更容易地對本發明有更完整的理解并且更容易地理解其伴隨的優點和特征,其中圖I示意性地示出了根據本發明實施例的測試流程控制示意圖。圖2示意性地示出了根據本發明實施例的生成用例并行源代碼示意圖。圖3示意性地示出了根據本發明實施例的運行和監控用例并行作業示意圖。圖4示意性地示出了根據本發明實施例的UPC語言示例的并行源代碼樣本。圖5示意性地示出了根據本發明實施例的并行源代碼生成配置。需要說明的是,附圖用于說明本發明,而非限制本發明。。并且,附圖中,相同或者類似的元件標有相同或者類似的標號。
具體實施例方式為了使本發明的內容更加清楚和易懂,下面結合具體實施例和附圖對本發明的內容進行詳細描述。本發明實施例提出了基于配置文件和樣本程序自動生成待測并行源代碼方法,為測試和驗證并行語言、編譯器和運行時庫提供了一種靈活、可配置的測試框架(如圖I所示)。該方法通過對并行編譯選項,對并行語言擴展的變量類型、并行編譯指示,對并行運行時庫的API (Application Programming Interface,應用程序編程接口)參數類型、并行操作范圍等進行參數化配置,生成測試并行編譯器的正向和反向用例源代碼(如圖2所示)。該方法通過對并行作業規模、并行作業運行參數、并行作業狀態監控等進行參數化,運行和控制并行作業運行(如圖3所示)。在根據本發明實施例中,可首先執行自動化的測試流程控制過程的處理;隨后執行針對可參數化的測試場景利用配置信息自動生成并行語言源代碼的處理;然后執行自動化的并行作業運行和監控過程的處理。由此,根據本發明實施例的針對并行語言、編譯器及運行時庫的并行源代碼生成、編譯及驅動執行的測試方法包括測試流程控制模塊、生成用例并行源代碼模塊以及運行和監控用例并行作業模塊。 ( I)測試流程控制模塊為測試的主控模塊。第一主控步驟Sll是進行測試運行環境的分析和配置,確定測試用例列表或測試用例目錄;具體地說,測試用例列表或測試用例目錄包括測試用例配置目錄、測試執行日志目錄、測試臨時工作目錄、樣本源代碼目錄(基礎架構樣本、測試場景樣本、Makefile樣本)、輔助腳本目錄、輔助數據目錄、并行編譯的全局編譯選項、并行作業的全局作業提交選項、是否保存測試中間數據等。第一主控步驟Sll中,測試中間數據主要有并行編譯過程信息(并行源代碼、生成的并行目標碼、編譯過程日志)、并行作業運行信息(并行目標碼、所需數據文件、運行結果、運行過程日志)。第二主控步驟S12是分析測試用例列表或遍歷測試用例配置目錄,確定需要測試的用例集合。第三主控步驟S13是調用生成用例并行源代碼模塊,逐次解析測試用例配置和生成所需的用例并行源代碼和Makefile文件。第四主控步驟S14是利用第三主控步驟S13生成的Makefile文件,驅動并行編譯器對第三主控步驟S13生成的用例并行源代碼進行編譯和生成并行目標代碼。同時,在第四主控步驟S14中,可根據需要,將本次編譯的用例并行源代碼、生成的并行目標代碼和并行編譯過程日志打包存儲至測試執行日志目錄,以及生成簡要的并行編譯過程測試日志信
肩、O第五主控步驟S15是調用運行和監控用例并行作業模塊,若第四主控步驟S14能夠成功生成并行目標代碼,則將第四主控步驟S14生成的并行目標代碼進行并行作業提交執行,監控并行作業的運行狀態,收集并行作業結果。同時,在第五主控步驟S15中,可根據需要,將本次執行的用例并行目標碼、并行作業運行所需數據文件、并行作業運行結果和并行作業運行過程日志打包存儲至測試執行日志目錄,以及生成簡要的并行作業運行過程測試日志信息。若第四主控步驟S14生成并行目標代碼失敗,則不執行任何操作(換言之,跳過第五主控步驟S15)。判斷步驟S10,用于在第五主控步驟S15結束后判斷是否還有其他測試用例未執行。若第五主控步驟S15結束后還有其他測試用例未執行,則轉至第二主控步驟S12并繼續進行測試下一個用例。若沒有需要執行的測試用例,則轉至第六主控步驟S16。第六主控步驟S16是分析第四主控步驟S14的并行編譯過程日志,分析第五主控步驟S15的并行作業運行過程日志和并行作業運行結果,并與預期結果進行比對,以確定并行編譯器的編譯過程是否符合預期結果,以及確定并行作業在并行程序運行環境(例如,作業管理、運行時庫等)下的運行結果是否符合預期結果。(2)生成用例并行源代碼模塊是在測試流程控制模塊的驅動下,分析和解析測試用例配置得到并行源代碼生成配置和并行編譯選項配置,接受測試流程控制模塊傳遞的全局并行編譯選項,生成所需的用例并行源代碼和Makefile文件。第一生成步驟S21是對測試用例配置進行分析,獲取構建并行源代碼所需的并行源代碼生成配置和構建Makefile所需的并行編譯選項配置。第二生成步驟S22是從并行源代碼生成配置中獲取FRAME信息,從基礎架構樣本中找出相匹配的.c文件,并拷貝至臨時工作目錄中命名為Main. C。第三生成步驟S23是從并行源代碼生成配置中獲取INCLUDE信息,從測試場景樣本中查找匹配的.h、. c或.a文件(測試場景定義、測試輔助函數庫),并將其拷貝至臨時工
作目錄,然后實例化第二生成步驟S22中Main, c的#include定義。第四生成步驟S24是從并行源代碼生成配置中獲取DATA信息,將第三生成步驟S23中的測試場景相關源代碼和處理后的Main, c中的變量類型宏定義實例化為具體的基本變量類型(int、char、long、float等)或并行語言擴展的共享、SIMD(Single InstructionMultiple Data,單指令多數據流)變量類型,將編譯指示宏定義實例化為具體的編譯指示宏定義。第五生成步驟S25是從并行源代碼生成配置中獲取MAKE信息,從Makefile樣本中查找匹配的Makefile文件,拷貝至臨時工作目錄。然后將Makefile中TARGET實例化為測試用例英文名,SOURCE實例化為第三生成步驟S23中的測試場景相關.c文件和Main, c,HEADER實例化為第三生成步驟S23中的測試場景相關.h文件。接著根據全局并行編譯選項和用例并行編譯選項配置,并將Makefile中的CFLAGS和LDFLAGS實例化為具體的編譯和鏈接選項;其中,優選地,用例相關并行編譯選項優先于全局并行編譯選項定義。(3)運行和監控用例并行作業模塊是在測試流程控制模塊的驅動下,分析和解析測試用例配置以得到并行作業運行前準備配置和并行作業運行配置,接受測試流程控制模塊傳遞的全局并行作業提交選項和并行作業狀態監控選項,運行和控制并行作業運行。第一步驟S31是對測試用例配置進行分析,獲取并行作業提交所需的并行作業運行前準備配置和并行作業運行配置(用例并行作業提交選項、用例并行作業運行參數)。第二步驟S32是根據并行作業運行前準備配置信息,根據并行作業實際需要,從輔助數據目錄中拷貝或運行輔助腳本新建或運行系統命令新建并行作業所需數據文件。第三步驟S33是根據并行作業運行前準備配置信息,根據并行作業實際需要,在運行節點中分發和部署并行作業所需的并行目標代碼、并行作業數據文件。第四步驟S34是根據全局并行作業提交選項和用例并行作業運行配置,實例化并行作業提交程序的運行選項和并行目標代碼的運行參數,并驅動并行作業提交程序提交運行用例并行目標代碼。第五步驟S35是根據并行作業狀態監控選項,在預置的時間間隔內查看并行作業的運行狀態是否為正常、并行作業運行結果文件是否有新記錄等。并行作業的運行狀態異常或運行結果文件超出預置查看次數仍未更新時,申請結束并行作業。并行作業結束后,根據退出狀態和結果文件的完整性,驗證并行作業是否為正常退出,若異常退出則轉至第四步驟S34重新提交,若正常退出或重新提交超出預置次數則轉至第六步驟S36。
第六步驟S36從運行節點中收集和匯總并行作業運行結果。具體實例為了使本技術領域的人員更好地理解本發明中的技術方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都應當屬于本發明保護的范圍。實例I :測試用例并行源代碼生成圖4 中的“(a)Main_Temp. c”部分、“(b)Data_type. c”部分及“(c)Data_type. h”部分分別為基礎架構樣本、測試場景樣本等并行源代碼樣本,該測試場景主要用于定義和初始化各進程運行過程中所使用的變量。圖5中的“(a)測試用例I配置”部分以及“(b)測試用例2配置”部分分別定義了兩個用例的并行源代碼生成配置。通過修改DATA的_DATA_ SHARE參數,可以實現共享變量或非共享變量測試。通過修改DATA的DATA_STR和DATA_TYPE參數,可以實現基本類型、結構體類型、共用體類型、枚舉類型變量的測試,以及擴展至SMD類型變量的測試。對于不同的并行語言及運行時庫來說,應該建立相適宜的測試場景。例如,針對于進程間同步、互斥、消息廣播等范圍性操作,可以將操作范圍的作用域進行參數化,在測試相應操作前實例化為具體的作用域,以生成具體的測試用例并行源代碼。例如,針對于運行時庫的API參數取值的測試,可以先根據參數類型進行劃分為引用類型、值類型,對于引用類型的取值可以是異常的空指針或API參數需要有效值,對于值類型的取值可以根據API參數的具體取值范圍進行正常值和異常值的劃分。實例2 :用例并行作業提交圖5的“(a)測試用例I配置”部分以及“(b)測試用例2配置”同時也定義了兩個用例的并行作業提交配置。通過修改PREDATA,可以為該用例并行作業運行前完成數據準備。通過修改PRESPREAD,可以為該用例并行作業運行前完成數據的分發和并行目標代碼的部署。通過修改RUNFLAGS,可以為并行作業提交程序配置運行參數。通過修改RUNARG,可以為用例并行目標代碼配置運行參數。對于不同的并行語言及其并行運行環境來說,一般并行作業提交程序會完成分發和部署并行作業所需的數據和并行目標代碼,基本上可以忽略PRESPREAD過程。對于所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說是顯而易見的,本文中所定義的一般原理可以在不脫離本發明實施例的精神或范圍的情況下,在其他實施例中實現。因此,本發明實施例不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。本發明上述實施例提供的方法相對于基于特定并行模型/語言的測試方法來說,具有較強的系統性、可擴展性和普適性。該方法通過將具體的并行語言在基礎語言基礎上的語法擴展、并行運行時庫API等可測試特性,分解為較為通用的基礎框架和特定可參數化的測試場景,并通過測試用例配置進行實例化,已實現測試用例并行源代碼的生成。對于不同的并行模型/語言來說,僅需要分析共性測試場景的差異性和補充特性測試場景,并通過測試用例配置及其集合來構建特定并行模型/語言相適宜的測試。
本發明上述實施例提供的方法可以提供測試用例設計的可復用性,針對并行語言、編譯器及運行時庫的并行特性進行參數化,將測試用例設計集中于可復用的測試場景設計及對測試場景的參數化配置,提升了測試用例設計的效率和價值。本發明上述實施例提供的方法將并行語言、編譯器及運行時庫的測試集中于測試場景的設計,通過測試驅動程序、測試配置文件、測試樣本程序的有效結合,自動化了并行源代碼的生成、并行編譯器編譯生成并行目標代碼、并行作業提交、并行作業狀態監控、并行作業運行結果收集和分析,在較大程度上提高了測試工作效率。需要說明的是,除非特別指出,否則 說明書中的術語“第一”、“第二”、“第三”等描述僅僅用于區分說明書中的各個組件、元素、步驟等,而不是用于表示各個組件、元素、步驟之間的邏輯關系或者順序關系等。可以理解的是,雖然本發明已以較佳實施例披露如上,然而上述實施例并非用以限定本發明。對于任何熟悉本領域的技術人員而言,在不脫離本發明技術方案范圍情況下,都可利用上述揭示的技術內容對本發明技術方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬于本發明技術方案保護的范圍內。
權利要求
1.一種并行源代碼生成、編譯及驅動執行的測試方法,其特征在于包括測試流程控制模塊、生成用例并行源代碼模塊以及運行和監控用例并行作業模塊;其中,所述生成用例并行源代碼模塊用于在所述測試流程控制模塊的驅動下,分析和解析測試用例配置得到并行源代碼生成配置和并行編譯選項配置,接受測試流程控制模塊傳遞的全局并行編譯選項,生成所需的用例并行源代碼和Makefile文件;并且,所述運行和監控用例并行作業模塊用于在所述測試流程控制模塊的驅動下,分析和解析測試用例配置以得到并行作業運行前準備配置和并行作業運行配置,接受所述測試流程控制模塊傳遞的全局并行作業提交選項和并行作業狀態監控選項,運行和控制并行作業運行。
2.根據權利要求I所述的并行源代碼生成、編譯及驅動執行的測試方法,其特征在于,所述測試流程控制模塊包括 第一主控步驟,用于進行測試運行環境的分析和配置,確定測試用例列表或測試用例目錄; 第二主控步驟,用于分析測試用例列表或遍歷測試用例配置目錄,確定需要測試的用例集合; 第三主控步驟,用于調用生成用例并行源代碼模塊,逐次解析測試用例配置和生成所需的用例并行源代碼和Makefile文件; 第四主控步驟,用于利用第三主控步驟生成的Makefile文件,驅動并行編譯器對第三主控步驟生成的用例并行源代碼進行編譯和生成并行目標代碼; 第五主控步驟,用于調用運行和監控用例并行作業模塊; 判斷步驟,用于在第五主控步驟結束后判斷是否還有其他測試用例未執行,若第五主控步驟結束后還有其他測試用例未執行,則轉至第二主控步驟并繼續進行測試下一個用例;若沒有需要執行的測試用例,則轉至第六主控步驟; 第六主控步驟,用于分析第四主控步驟的并行編譯過程日志,分析第五主控步驟的并行作業運行過程日志和并行作業運行結果,并與預期結果進行比對,以確定并行編譯器的編譯過程是否符合預期結果,以及確定并行作業在并行程序運行環境下的運行結果是否符合預期結果。
3.根據權利要求I或2所述的并行源代碼生成、編譯及驅動執行的測試方法,其特征在于,所述生成用例并行源代碼模塊包括 第一生成步驟,用于對測試用例配置進行分析,獲取構建并行源代碼所需的并行源代碼生成配置和構建Makefile所需的并行編譯選項配置; 第二生成步驟,用于從并行源代碼生成配置中獲取FRAME信息,從基礎架構樣本中找出相匹配的.c文件,并拷貝至臨時工作目錄中命名為Main, c ; 第三生成步驟,用于從并行源代碼生成配置中獲取INCLUDE信息,從測試場景樣本中查找匹配的測試場景定義、測試輔助函數庫,并將其拷貝至臨時工作目錄,然后實例化第二生成步驟中Main, c的#include定義; 第四生成步驟,用于從并行源代碼生成配置中獲取DATA信息,將第三生成步驟中的測試場景相關源代碼和處理后的Main, c中的變量類型宏定義實例化為具體的基本變量類型或并行語言擴展的共享、SIMD變量類型,將編譯指示宏定義實例化為具體的編譯指示宏定義;第五生成步驟,用于從并行源代碼生成配置中獲取MAKE信息,WMakefile樣本中查找匹配的Makefile文件,拷貝至臨時工作目錄,然后將Makefile中TARGET實例化為測試用例英文名,SOURCE實例化為第三生成步驟中的測試場景相關.c文件和Main, c, HEADER實例化為第三生成步驟中的測試場景相關.h文件,接著根據全局并行編譯選項和用例并行編譯選項配置,并將Makefile中的CFLAGS和LDFLAGS實例化為具體的編譯和鏈接選項。
4.根據權利要求I至3之一所述的并行源代碼生成、編譯及驅動執行的測試方法,其特征在于,所述運行和監控用例并行作業模塊包括 第一步驟,用于對測試用例配置進行分析,獲取并行作業提交所需的并行作業運行前準備配置和并行作業運行配置; 第二步驟,用于根據并行作業運行前準備配置信息,根據并行作業實際需要,從輔助數據目錄中拷貝或運行輔助腳本新建或運行系統命令新建并行作業所需數據文件; 第三步驟,用于根據并行作業運行前準備配置信息,根據并行作業實際需要,在運行節點中分發和部署并行作業所需的并行目標代碼、并行作業數據文件; 第四步驟,用于根據全局并行作業提交選項和用例并行作業運行配置,實例化并行作業提交程序的運行選項和并行目標代碼的運行參數,并驅動并行作業提交程序提交運行用例并行目標代碼; 第五步驟,用于根據并行作業狀態監控選項,在預置的時間間隔內查看并行作業的運行狀態是否為正常、并行作業運行結果文件是否有新記錄等;并行作業的運行狀態異常或運行結果文件超出預置查看次數仍未更新時,申請結束并行作業;并行作業結束后,根據退出狀態和結果文件的完整性,驗證并行作業是否為正常退出,若異常退出則轉至第四步驟重新提交,若正常退出或重新提交超出預置次數則轉至第六步驟; 第六步驟,用于從運行節點中收集和匯總并行作業運行結果。
全文摘要
本發明提供的一種并行源代碼生成、編譯及驅動執行的測試方法包括測試流程控制模塊、生成用例并行源代碼模塊以及運行和監控用例并行作業模塊;其中,所述生成用例并行源代碼模塊用于在所述測試流程控制模塊的驅動下,分析和解析測試用例配置得到并行源代碼生成配置和并行編譯選項配置,接受測試流程控制模塊傳遞的全局并行編譯選項,生成所需的用例并行源代碼和Makefile文件;并且,所述運行和監控用例并行作業模塊用于在所述測試流程控制模塊的驅動下,分析和解析測試用例配置以得到并行作業運行前準備配置和并行作業運行配置,接受所述測試流程控制模塊傳遞的全局并行作業提交選項和并行作業狀態監控選項,運行和控制并行作業運行。
文檔編號G06F11/36GK102880474SQ201210380728
公開日2013年1月16日 申請日期2012年10月9日 優先權日2012年10月9日
發明者吳利, 董超群, 徐小春, 司品超, 何曼, 張超容 申請人:無錫江南計算技術研究所