@@ -218,7 +218,7 @@ runPackageUploadTests = do
218218 (testpackageTarFilename, testpackageTarFileContent, _, _, _, _) =
219219 testpackage
220220 (testpackageTarFilenameVariant, testpackageTarFileContentVariant, _, _, _, _) =
221- mkPackage " testPackage"
221+ mkPackage " testPackage" Nothing
222222 uploadTime = " Tue Oct 18 20:54:28 UTC 2010"
223223 uploadTimeISO = " 2010-10-18T20:54:28Z"
224224 uploadTimeISO2 = " 2020-10-18T20:54:28Z"
@@ -234,11 +234,66 @@ runRevisionTests = do
234234 xs <- getUrl NoAuth " /package/testpackage-1.0.0.0/revision/1.cabal"
235235 unless (xs == revisedCabalFileContent) $
236236 die " Bad revised cabal file content"
237+ do info " Uploading testpackage with flags"
238+ postFile isOk
239+ (Auth " HackageTestUser1" " testpass1" )
240+ " /packages/" " package"
241+ (testpackageFlagsTarFilename, testpackageFlagsTarFileContent)
242+ do info " Revising default for automatic flag"
243+ post (Auth " HackageTestUser1" " testpass1" ) " /package/testpackageFlags-1.0.0.0/testpackageFlags.cabal/edit"
244+ [ (" cabalfile" , revisedCabalFileContentDefaultAutomaticFlag)
245+ , (" publish" , " Publish new revision" )
246+ ]
247+ do info " Checking automatic default flag revision exists"
248+ xs <- getUrl NoAuth " /package/testpackageFlags-1.0.0.0/revision/1.cabal"
249+ unless (xs == revisedCabalFileContentDefaultAutomaticFlag) $
250+ die " Bad revised cabal file content"
251+ do info " Revising flag to manual"
252+ post (Auth " HackageTestUser1" " testpass1" ) " /package/testpackageFlags-1.0.0.0/testpackageFlags.cabal/edit"
253+ [ (" cabalfile" , revisedCabalFileContentToManualFlag)
254+ , (" publish" , " Publish new revision" )
255+ ]
256+ do info " Checking automatic -> manual flag revision exists"
257+ xs <- getUrl NoAuth " /package/testpackageFlags-1.0.0.0/revision/2.cabal"
258+ unless (xs == revisedCabalFileContentToManualFlag) $
259+ die " Bad revised cabal file content"
260+ do info " Revising default for manual flag"
261+ post (Auth " HackageTestUser1" " testpass1" ) " /package/testpackageFlags-1.0.0.0/testpackageFlags.cabal/edit"
262+ [ (" cabalfile" , revisedCabalFileContentDefaultManualFlag)
263+ , (" publish" , " Publish new revision" )
264+ ]
265+ do info " Checking manual default flag revision exists"
266+ xs <- getUrl NoAuth " /package/testpackageFlags-1.0.0.0/revision/3.cabal"
267+ unless (xs == revisedCabalFileContentDefaultManualFlag) $
268+ die " Bad revised cabal file content"
269+ do info " Revising flag to automatic"
270+ post (Auth " HackageTestUser1" " testpass1" ) " /package/testpackageFlags-1.0.0.0/testpackageFlags.cabal/edit"
271+ [ (" cabalfile" , revisedCabalFileContentToAutomaticFlag)
272+ , (" publish" , " Publish new revision" )
273+ ]
274+ do info " Checking manual -> automatic flag revision exists"
275+ xs <- getUrl NoAuth " /package/testpackageFlags-1.0.0.0/revision/4.cabal"
276+ unless (xs == revisedCabalFileContentToAutomaticFlag) $
277+ die " Bad revised cabal file content"
237278 where
238279 (_, _, _, testpackageCabalFileContent, _, _) = testpackage
239280 revisedCabalFileContent =
240281 " x-revision: 1\n description: a description added by revision\n "
241282 ++ testpackageCabalFileContent
283+ (testpackageFlagsTarFilename, testpackageFlagsTarFileContent, _, _, _, _) = mkPackage " testpackageFlags" $ Just $ flagDefaultManual False False
284+ revisedCabalFileContentDefaultAutomaticFlag = mkTestPackageRevisionFlagDefaultManual True False 1
285+ revisedCabalFileContentToManualFlag = mkTestPackageRevisionFlagDefaultManual True True 2
286+ revisedCabalFileContentDefaultManualFlag = mkTestPackageRevisionFlagDefaultManual False True 3
287+ revisedCabalFileContentToAutomaticFlag = mkTestPackageRevisionFlagDefaultManual False False 4
288+ flagDefaultManual flagDefault manual = unlines [
289+ " flag isTest" ,
290+ " default: " ++ show flagDefault,
291+ " manual: " ++ show manual]
292+
293+ mkTestPackageRevisionFlagDefaultManual :: Bool -> Bool -> Int -> String
294+ mkTestPackageRevisionFlagDefaultManual flagDefault manual revision =
295+ let (_, _, _, testpackageCabalFlagsFileContent, _, _) = mkPackage " testpackageFlags" $ Just $ flagDefaultManual flagDefault manual
296+ in " x-revision: " ++ show revision ++ " \n " ++ testpackageCabalFlagsFileContent
242297
243298runPackageTests :: IO ()
244299runPackageTests = do
@@ -308,4 +363,4 @@ runPackageTests = do
308363 = testpackage
309364
310365testpackage :: (FilePath , String , FilePath , String , FilePath , String )
311- testpackage = mkPackage " testpackage"
366+ testpackage = mkPackage " testpackage" Nothing
0 commit comments