Revision 9cbc1edb

b/htools/Ganeti/HTools/QC.hs
606 606
    ==> isFailure (Node.addSec node inst pdx)
607 607
        where _types = (node::Node.Node, inst::Instance.Instance, pdx::Int)
608 608

  
609
-- | Checks for memory reservation changes
610
prop_Node_rMem node inst =
611
    -- ab = auto_balance, nb = non-auto_balance
612
    -- we use -1 as the primary node of the instance
613
    let inst' = inst { Instance.pNode = (-1), Instance.auto_balance = True}
614
        inst_ab = setInstanceSmallerThanNode node inst'
615
        inst_nb = inst_ab { Instance.auto_balance = False }
616
        -- now we have the two instances, identical except the
617
        -- auto_balance attribute
618
        orig_rmem = Node.rMem node
619
        inst_idx = Instance.idx inst_ab
620
        node_add_ab = Node.addSec node inst_ab (-1)
621
        node_add_nb = Node.addSec node inst_nb (-1)
622
        node_del_ab = liftM (flip Node.removeSec inst_ab) node_add_ab
623
        node_del_nb = liftM (flip Node.removeSec inst_nb) node_add_nb
624
    in case (node_add_ab, node_add_nb, node_del_ab, node_del_nb) of
625
         (Types.OpGood a_ab, Types.OpGood a_nb,
626
          Types.OpGood d_ab, Types.OpGood d_nb) ->
627
             Node.rMem a_ab >  orig_rmem &&
628
             Node.rMem a_ab - orig_rmem == Instance.mem inst_ab &&
629
             Node.rMem a_nb == orig_rmem &&
630
             Node.rMem d_ab == orig_rmem &&
631
             Node.rMem d_nb == orig_rmem &&
632
             -- this is not related to rMem, but as good a place to
633
             -- test as any
634
             inst_idx `elem` Node.sList a_ab &&
635
             not (inst_idx `elem` Node.sList d_ab)
636
         _ -> False
637

  
609 638
newtype SmallRatio = SmallRatio Double deriving Show
610 639
instance Arbitrary SmallRatio where
611 640
    arbitrary = do
......
657 686
    , run prop_Node_addPriFD
658 687
    , run prop_Node_addPriFC
659 688
    , run prop_Node_addSec
689
    , run prop_Node_rMem
660 690
    , run prop_Node_setMdsk
661 691
    , run prop_Node_tagMaps_idempotent
662 692
    , run prop_Node_tagMaps_reject

Also available in: Unified diff