@@ -904,56 +904,58 @@ func comparePreprocessGoldenFile(t *testing.T, sketchDir *paths.Path, preprocess
904
904
require .Equal (t , buf .String (), strings .ReplaceAll (preprocessedSketch , "\r \n " , "\n " ))
905
905
}
906
906
907
- func TestCoreCaching (t * testing.T ) {
907
+ func TestBuildCaching (t * testing.T ) {
908
908
env , cli := integrationtest .CreateArduinoCLIWithEnvironment (t )
909
909
defer env .CleanUp ()
910
910
911
- sketchPath , err := paths .New (".." , "testdata" , "bare_minimum" ).Abs ()
912
- require .NoError (t , err )
913
-
914
911
// Install Arduino AVR Boards
915
- _ ,
_ ,
err = cli .
Run (
"core" ,
"install" ,
"arduino:[email protected] " )
912
+ _ ,
_ ,
err : = cli .
Run (
"core" ,
"install" ,
"arduino:[email protected] " )
916
913
require .NoError (t , err )
917
914
918
- // Create temporary cache dir
919
- buildCachePath , err := paths .MkTempDir ("" , "test_build_cache" )
920
- require .NoError (t , err )
921
- defer buildCachePath .RemoveAll ()
915
+ t .Run ("CoreCaching" , func (t * testing.T ) {
916
+ sketchPath , err := paths .New (".." , "testdata" , "bare_minimum" ).Abs ()
917
+ require .NoError (t , err )
922
918
923
- // Build first time
924
- _ , _ , err = cli .Run ("compile" , "-b" , "arduino:avr:uno" , "--build-cache-path" , buildCachePath .String (), sketchPath .String ())
925
- require .NoError (t , err )
919
+ // Create temporary cache dir
920
+ buildCachePath , err := paths .MkTempDir ("" , "test_build_cache" )
921
+ require .NoError (t , err )
922
+ defer buildCachePath .RemoveAll ()
926
923
927
- // Find cached core and save timestamp
928
- pathList , err := buildCachePath .ReadDirRecursiveFiltered (nil , paths .FilterPrefixes ("core.a" ))
929
- require .NoError (t , err )
930
- require .Len (t , pathList , 1 )
931
- cachedCoreFile := pathList [0 ]
932
- lastUsedPath := cachedCoreFile .Parent ().Join (".last-used" )
933
- require .True (t , lastUsedPath .Exist ())
934
- coreStatBefore , err := cachedCoreFile .Stat ()
935
- require .NoError (t , err )
924
+ // Build first time
925
+ _ , _ , err = cli .Run ("compile" , "-b" , "arduino:avr:uno" , "--build-cache-path" , buildCachePath .String (), sketchPath .String ())
926
+ require .NoError (t , err )
936
927
937
- // Run build again and check timestamp is unchanged
938
- _ , _ , err = cli .Run ("compile" , "-b" , "arduino:avr:uno" , "--build-cache-path" , buildCachePath .String (), sketchPath .String ())
939
- require .NoError (t , err )
940
- coreStatAfterRebuild , err := cachedCoreFile .Stat ()
941
- require .NoError (t , err )
942
- require .Equal (t , coreStatBefore .ModTime (), coreStatAfterRebuild .ModTime ())
928
+ // Find cached core and save timestamp
929
+ pathList , err := buildCachePath .ReadDirRecursiveFiltered (nil , paths .FilterPrefixes ("core.a" ))
930
+ require .NoError (t , err )
931
+ require .Len (t , pathList , 1 )
932
+ cachedCoreFile := pathList [0 ]
933
+ lastUsedPath := cachedCoreFile .Parent ().Join (".last-used" )
934
+ require .True (t , lastUsedPath .Exist ())
935
+ coreStatBefore , err := cachedCoreFile .Stat ()
936
+ require .NoError (t , err )
943
937
944
- // Touch a file of the core and check if the builder invalidate the cache
945
- time . Sleep ( time . Second )
946
- now := time . Now (). Local ( )
947
- coreFolder := cli . DataDir (). Join ( "packages" , "arduino" , "hardware" , "avr" , "1.8.6" )
948
- err = coreFolder . Join ( "cores" , "arduino" , "Arduino.h" ). Chtimes ( now , now )
949
- require .NoError (t , err )
938
+ // Run build again and check timestamp is unchanged
939
+ _ , _ , err = cli . Run ( "compile" , "-b" , "arduino:avr:uno" , "--build-cache-path" , buildCachePath . String (), sketchPath . String () )
940
+ require . NoError ( t , err )
941
+ coreStatAfterRebuild , err := cachedCoreFile . Stat ( )
942
+ require . NoError ( t , err )
943
+ require .Equal (t , coreStatBefore . ModTime (), coreStatAfterRebuild . ModTime () )
950
944
951
- // Run build again, to verify that the builder rebuilds core.a
952
- _ , _ , err = cli .Run ("compile" , "-b" , "arduino:avr:uno" , "--build-cache-path" , buildCachePath .String (), sketchPath .String ())
953
- require .NoError (t , err )
954
- coreStatAfterTouch , err := cachedCoreFile .Stat ()
955
- require .NoError (t , err )
956
- require .NotEqual (t , coreStatBefore .ModTime (), coreStatAfterTouch .ModTime ())
945
+ // Touch a file of the core and check if the builder invalidate the cache
946
+ time .Sleep (time .Second )
947
+ now := time .Now ().Local ()
948
+ coreFolder := cli .DataDir ().Join ("packages" , "arduino" , "hardware" , "avr" , "1.8.6" )
949
+ err = coreFolder .Join ("cores" , "arduino" , "Arduino.h" ).Chtimes (now , now )
950
+ require .NoError (t , err )
951
+
952
+ // Run build again, to verify that the builder rebuilds core.a
953
+ _ , _ , err = cli .Run ("compile" , "-b" , "arduino:avr:uno" , "--build-cache-path" , buildCachePath .String (), sketchPath .String ())
954
+ require .NoError (t , err )
955
+ coreStatAfterTouch , err := cachedCoreFile .Stat ()
956
+ require .NoError (t , err )
957
+ require .NotEqual (t , coreStatBefore .ModTime (), coreStatAfterTouch .ModTime ())
958
+ })
957
959
}
958
960
959
961
func TestMergeSketchWithBootloader (t * testing.T ) {
0 commit comments