Subversion Repositories DevTools

Rev

Rev 7081 | Rev 7099 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7079 dpurdie 1
package com.erggroup.buildtool.utf;
2
 
3
 
4
import java.sql.SQLException;
5
import java.util.ArrayList;
6
import java.util.Iterator;
7
 
8
import com.erggroup.buildtool.ripple.BuildFile;
9
import com.erggroup.buildtool.ripple.BuildFile.BuildFileState;
10
import com.erggroup.buildtool.ripple.BuildStandard;
11
import com.erggroup.buildtool.ripple.ReleaseManager;
12
import com.erggroup.buildtool.ripple.Package;
13
import com.erggroup.buildtool.ripple.RippleEngine;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16
import org.junit.AfterClass;
17
import org.junit.BeforeClass;
18
import org.junit.After;
19
import org.junit.Before;
20
import org.junit.Test;
21
import org.junit.runner.JUnitCore;
22
 
23
import static org.junit.Assert.*;
24
 
25
/**
26
 * container of Build Daemon test methods
27
 */
28
public class DaemonRippleTestCase
29
{
30
    private static final Logger mLogger = LoggerFactory.getLogger(DaemonRippleTestCase.class);
31
    myReleaseManager            releaseManager = null;
32
    RippleEngine                rippleEngine   = null;
33
    ArrayList<Package> testPackageCollection   = new ArrayList<Package>();
34
 
35
    /**
36
     * Init the package set
37
     */
38
    public void initTestPackages(String setName)
39
    {
40
 
41
        /*    A basic set of packages
42
         *    All buildable
43
         */
44
         Package  p1 = createPackage(1, setName + "1");
45
         Package  p2 = createPackage(2, setName + "2");
46
         Package  p3 = createPackage(3, setName + "3");
47
         Package  p4 = createPackage(4, setName + "4");
48
         Package  p5 = createPackage(5, setName + "5");
49
         Package  p6 = createPackage(6, setName + "6");
50
         Package  p7 = createPackage(7, setName + "7");
51
 
52
         testPackageCollection.add(p1);
53
         testPackageCollection.add(p2);
54
         testPackageCollection.add(p3);
55
         testPackageCollection.add(p4);
56
         testPackageCollection.add(p5);
57
         testPackageCollection.add(p6);
58
         testPackageCollection.add(p7);
59
 
60
         p2.addDependency(p1);
61
         p3.addDependency(p1);
62
         p4.addDependency(p2).addDependency(p3);
63
         p5.addDependency(p2).addDependency(p4);
64
         p6.addDependency(p3).addDependency(p4);
65
         p7.addDependency(p5).addDependency(p6);
66
 
67
    }
68
 
69
    /** Create a WIP for a package in the Release
70
     * This will mark it as directlyPlanned
71
     * @param newPvId
72
     * @param alias
73
     */
74
    private Package createWip(int newPvId, String alias) {
75
 
76
        Package wip = ReleaseManager.NULL_PACKAGE;
77
 
78
        for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
79
        {
80
            Package p = it.next();
81
 
82
            if ( p.mAlias.compareTo( alias ) == 0 )
83
            {
84
                wip = new Package(newPvId, p);
85
                wip.mDirectlyPlanned = true;
86
                testPackageCollection.add(wip);
87
                break;
88
            }
89
        }
90
        return wip;
91
    }
92
 
93
    /** Create a TEST for a package in the Release
94
     * This will mark it as test package
95
     * @param newPvId <0 - use PVID of the base package
96
     * @param alias
97
     */
98
    private Package createTest(int newPvId, String alias) {
99
 
100
        Package wip = ReleaseManager.NULL_PACKAGE;
101
 
102
        for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
103
        {
104
            Package p = it.next();
105
 
106
            if ( p.mAlias.compareTo( alias ) == 0 )
107
            {
108
                if (newPvId < 0 )
109
                    newPvId = p.mId;
110
                wip = new Package(newPvId, p);
111
                wip.mTestBuildInstruction = 1;
112
                testPackageCollection.add(wip);
113
                break;
114
            }
115
        }
116
        return wip;
117
    }
118
 
119
    /** Create a RippleRequest for a package in the Release
120
     * This will mark it as ripple request
121
     * @param alias
122
     */
123
    private Package requestRipple(String alias) {
124
 
125
        Package wip = ReleaseManager.NULL_PACKAGE;
126
 
127
        for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
128
        {
129
            Package p = it.next();
130
 
131
            if ( p.mAlias.compareTo( alias ) == 0 )
132
            {
133
                wip = new Package(p.mId, p);
134
                wip.mForcedRippleInstruction = 1;
135
                testPackageCollection.add(wip);
136
                break;
137
            }
138
        }
139
        return wip;
140
    }
141
 
142
    /** Create a basic package
143
     * 
144
     */
145
    private Package createPackage(int idx, String pName) {
146
        Package  p = new Package(idx, idx * 100, pName, "1.0.0000", ".cr", pName + ".cr" , "CC::/vob/"+pName+".WIP", 'b', 'P');
147
        BuildStandard bs = new BuildStandard(rippleEngine, "Linux", "Java 1.6");
148
        p.mBuildStandardCollection.add(bs);
149
        p.mBuildTime = 100;
150
        return p;
151
    }
152
 
153
    /** Update build time for a package
154
     * 
155
     *  @param alias
156
     *  @param buildTime - Set a new build time
157
     */
158
    private Package setBuildTime(String alias, int buildTime) {
159
 
160
        Package wip = ReleaseManager.NULL_PACKAGE;
161
 
162
        for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
163
        {
164
            Package p = it.next();
165
 
166
            if ( p.mAlias.compareTo( alias ) == 0 )
167
            {
168
                p.mBuildTime = buildTime;
169
                break;
170
            }
171
        }
172
        return wip;
173
    }
174
 
175
    /** Setup a package so that it will be detected as being rippled
176
     *      Change its pvid so that consumers will see that they need to be rippled
177
     */
178
    private Package ripplePackage(String alias) {
179
 
180
        Package wip = ReleaseManager.NULL_PACKAGE;
181
 
182
        for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
183
        {
184
            Package p = it.next();
185
 
186
            if ( p.mAlias.compareTo( alias ) == 0 )
187
            {
188
                p.mId += 10000;
189
                break;
190
            }
191
        }
192
        return wip;
193
    }
194
 
195
 
196
 
197
    /** Subclass and override key methods so that the test can control
198
     *  the data being used
199
     */
200
    public class myReleaseManager extends ReleaseManagerUtf
201
	{
202
       public myReleaseManager(final String connectionString, final String username, final String password)
203
		{
204
           super(connectionString, username, password);
205
           mLogger.error("Test {}", connectionString);
206
		}
207
 
208
		public myReleaseManager()
209
		{
210
			super();
211
		}
212
 
213
		@Override
214
		public void queryPackageVersions(RippleEngine rippleEngine, ArrayList<Package> packageCollection, int baseline) throws SQLException, Exception
215
		{
216
 
217
		    //    Filter for the packages that are in the release
218
		    for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
219
	        {
220
	            Package p = it.next();
221
	            if (!p.mDirectlyPlanned && p.mTestBuildInstruction == 0 && p.mForcedRippleInstruction == 0)
222
	            {
223
	                p.mIsNotReleased = false;
224
	                packageCollection.add(p);
225
	            }
226
	        }
227
		}
228
 
229
		@Override
230
        public void queryWips(RippleEngine rippleEngine, ArrayList<Package> packageCollection, int baseline) throws SQLException, Exception
231
        {
232
            //    Filter for the packages that are WIPs
233
            for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
234
            {
235
                Package p = it.next();
236
                if (p.mDirectlyPlanned )
237
                {
238
                    p.mIsNotReleased = true;
239
                    p.mDirectlyPlanned = true;
240
                    p.mBuildReason = BuildReason.NewVersion;
241
                    packageCollection.add(p);
242
                }
243
            }
244
 
245
        }
246
 
247
		@Override
248
        public void queryTest(RippleEngine rippleEngine, ArrayList<Package> packageCollection, int baseline) throws SQLException, Exception
249
        {
250
		    //    Filter for the packages that are TEST builds
251
            for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
252
            {
253
    		    Package p = it.next();
254
                if (p.mTestBuildInstruction != 0 )
255
                {
256
                    p.mIsNotReleased = true;
257
                    p.mDirectlyPlanned = false;
258
                    p.mBuildReason = BuildReason.Test;
259
                    packageCollection.add(p);
260
                }
261
            }
262
        }
263
 
264
		@Override
265
        public void queryRipples(RippleEngine rippleEngine, ArrayList<Package> packageCollection, int baseline) throws SQLException, Exception
266
        {
267
		    //    Filter for the packages that are forced Ripples
268
            for (Iterator<Package> it = testPackageCollection.iterator(); it.hasNext(); )
269
            {		    
270
    		    Package p = it.next();
271
                if (p.mForcedRippleInstruction != 0)
272
                {
273
                    p.mIsNotReleased = true;
274
                    p.mDirectlyPlanned = false;
275
                    p.mBuildReason = BuildReason.Ripple;
276
                    p.mBuildTime = 3;
277
                    packageCollection.add(p);
278
                } 
279
            }
280
        }
281
 
282
	}
283
 
284
 
285
    public DaemonRippleTestCase()
286
    {
287
        mLogger.debug("DaemonBuildTestCase2");
288
    }
289
 
290
    /**
291
     * Test Case main line
292
     */
293
    public static void main(String[] args)
294
    {
295
        mLogger.debug("main");
296
        JUnitCore.main("com.erggroup.buildtool.utf.DaemonBuildTestCase2");
297
    }
298
 
299
    /**
300
     * set up performed prior to any test method
301
     */
302
    @BeforeClass
303
    public static void TestCaseSetUp()
304
    {
305
        mLogger.debug("TestCaseSetUp");
306
    }
307
 
308
    /**
309
     * tear down performed after test methods
310
     */
311
    @AfterClass
312
    public static void TestCaseTearDown()
313
    {
314
        mLogger.debug("TestCaseTearDown");
315
    }
316
 
317
    /**
318
     * set up performed prior to each test method
319
     */
320
    @Before
321
    public void TestSetUp()
322
    {
323
        mLogger.debug("TestSetUp");
324
        System.setProperty("vix.utf.name", "DaemonBuildTestCase2");
325
        Package.mGenericMachtype = "win32";
326
        Package.mGbeDpkg = ".";
327
    }
328
 
329
    /**
330
     * tear down performed after each test method
331
     */
332
    @After
333
    public void TestTearDown()
334
    {
335
        mLogger.debug("TestTearDown");
336
    }
337
 
338
    /** Check the build file contents
339
     *  @param expectedName - Name of the expected output file 
340
     */
341
    private void checkBuildFile(String expectedName) {
342
        boolean rv;
343
        BuildFile buildFile;
344
 
345
        buildFile = rippleEngine.getFirstBuildFileContent();
346
        assertTrue(buildFile != null);
347
        assertTrue(buildFile.state != BuildFileState.Dummy);
348
        assertTrue(buildFile.state != BuildFileState.Empty);
349
 
350
        rv = Utilities.checkBuildfile(buildFile.content, expectedName);
351
        assertTrue(rv);
352
    }
353
 
354
    /**
355
     *  Create a mesh of packages
356
     *  Ripple the one at the bottom
357
     */
358
    @Test
359
    public void RippleTest_1()
360
    {
361
        String tName = "ripple1";
362
        mLogger.debug("RippleTest {}", tName);
363
        System.out.println("RippleTest " + tName);
364
        releaseManager = new myReleaseManager(tName, "not used", "not used");
365
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
366
 
367
        try
368
        {
369
            rippleEngine.collectMetaData();
370
 
371
            //  Generate basic test set and then tweak for this test
372
            initTestPackages("p");
373
 
374
            createWip(2000, "p1.cr");
375
            rippleEngine.planRelease(false);
376
        }
377
        catch (Exception e)
378
        {
379
        }
380
 
381
        checkBuildFile(tName);
382
 
383
    }
384
 
385
    /**
386
     *  Create a mesh of packages
387
     *  Ripple the one not at the bottom
388
     */
389
    @Test
390
    public void RippleTest_2()
391
    {
392
        String tName = "ripple2";
393
        mLogger.debug("RippleTest {}", tName);
394
        System.out.println("RippleTest " + tName);
395
        releaseManager = new myReleaseManager(tName, "not used", "not used");
396
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
397
 
398
        try
399
        {
400
            rippleEngine.collectMetaData();
401
 
402
            //  Generate basic test set and then tweak for this test
403
            initTestPackages("p");
404
 
405
            createWip(2000, "p2.cr");
406
            rippleEngine.planRelease(false);
407
        }
408
        catch (Exception e)
409
        {
410
        }
411
 
412
        checkBuildFile(tName);
413
    }
414
 
415
 
416
 
417
    /**
418
     *  Create a mesh of packages
419
     *  Create a package that will feed into the mesh
420
     *  Mark bottom of the mesh as being rippled
421
     *  Mark create a WIP on the package feeding the mesh such that the additional time < 20%
422
     * 
423
     */
424
    @Test
425
    public void RippleTest_3()
426
    {
427
        String tName = "ripple3";
428
        mLogger.debug("RippleTest {}", tName);
429
        System.out.println("RippleTest " + tName);
430
        releaseManager = new myReleaseManager(tName, "not used", "not used");
431
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
432
 
433
        try
434
        {
435
            rippleEngine.collectMetaData();
436
 
437
            //  Generate basic test set and then tweak for this test
438
            initTestPackages("p");
439
 
440
            Package p1 = ripplePackage("p1.cr");
441
 
442
            Package  p0 = createPackage(20, "p0");
443
            testPackageCollection.add(p0);
444
            setBuildTime("p0.cr", 10);
445
            p1.addDependency(p0);
446
            createWip(21, "p0.cr");
447
 
448
            rippleEngine.planRelease(false);
449
        }
450
        catch (Exception e)
451
        {
452
        }
453
 
454
        checkBuildFile(tName);
455
    }
456
 
457
    /**
458
     *  Create a mesh of packages
459
     *  Create a package that will feed into the mesh
460
     *  Mark bottom of the mesh as being rippled
461
     *  Mark create a WIP on the package feeding the mesh such that the additional time > 20%
462
     * 
463
     */
464
    @Test
465
    public void RippleTest_4()
466
    {
467
        String tName = "ripple4";
468
        mLogger.debug("RippleTest {}", tName);
469
        System.out.println("RippleTest " + tName);
470
        releaseManager = new myReleaseManager(tName, "not used", "not used");
471
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
472
 
473
        try
474
        {
475
            rippleEngine.collectMetaData();
476
 
477
            //  Generate basic test set and then tweak for this test
478
            initTestPackages("p");
479
 
480
            Package p1 = ripplePackage("p1.cr");
481
 
482
            Package  p0 = createPackage(20, "p0");
483
            testPackageCollection.add(p0);
484
            setBuildTime("p0.cr", 200);
485
            p1.addDependency(p0);
486
            createWip(21, "p0.cr");
487
 
488
            rippleEngine.planRelease(false);
489
        }
490
        catch (Exception e)
491
        {
492
        }
493
 
494
        checkBuildFile(tName);
495
    }  
496
 
497
 
498
    /**
499
     *  Create a mesh of packages
500
     *      Create a test package
501
     *      Create a WIP
502
     *      Test should be built first          
503
     */
504
    @Test
505
    public void RippleTest_5()
506
    {
507
        String tName = "ripple5";
508
        mLogger.debug("RippleTest {}", tName);
509
        System.out.println("RippleTest " + tName);
510
        releaseManager = new myReleaseManager(tName, "not used", "not used");
511
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
512
 
513
        try
514
        {
515
            rippleEngine.collectMetaData();
516
 
517
            //  Generate basic test set and then tweak for this test
518
            initTestPackages("p");
519
 
520
            createWip (2000, "p1.cr");
521
            createTest(3333, "p5.cr");
522
            createTest(-1  , "p4.cr");
523
            rippleEngine.planRelease(false);
524
        }
525
        catch (Exception e)
526
        {
527
        }
528
 
529
        checkBuildFile(tName);
530
    }
531
 
532
    /**
533
     *  Create a mesh of packages
534
     *  Request a ripple (daemon Instruction)
535
     */
536
    @Test
537
    public void RippleTest_6()
538
    {
539
        String tName = "ripple6";
540
        mLogger.debug("RippleTest {}", tName);
541
        System.out.println("RippleTest " + tName);
542
        releaseManager = new myReleaseManager(tName, "not used", "not used");
543
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
544
 
545
        try
546
        {
547
            rippleEngine.collectMetaData();
548
 
549
            //  Generate basic test set and then tweak for this test
550
            initTestPackages("p");
551
 
552
            requestRipple("p5.cr");
553
            rippleEngine.planRelease(false);
554
        }
555
        catch (Exception e)
556
        {
557
        }
558
 
559
        checkBuildFile(tName);
560
    }
561
 
562
    /**
563
     * Create a mesh of packages
564
     * Create a circular dependency
565
     * Create a WIP to 'fix' the circular dependency
566
     */
567
    @Test
568
    public void RippleTest_7()
569
    {
570
        String tName = "ripple7";
571
        mLogger.debug("RippleTest {}", tName);
572
        System.out.println("RippleTest " + tName);
573
        releaseManager = new myReleaseManager(tName, "not used", "not used");
574
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
575
 
576
        try
577
        {
578
            rippleEngine.collectMetaData();
579
 
580
            //  Generate basic test set and then tweak for this test
581
            /*    A basic set of packages
582
             */
583
             Package  p1 = createPackage(1, "p1");
584
             Package  p2 = createPackage(2, "p2");
585
             Package  p3 = createPackage(3, "p3");
586
             Package  p4 = createPackage(4, "p4");
587
 
588
             testPackageCollection.add(p1);
589
             testPackageCollection.add(p2);
590
             testPackageCollection.add(p3);
591
             testPackageCollection.add(p4);
592
 
593
             // Create circular dependency
594
             p2.addDependency(p1);
595
             p3.addDependency(p2);
596
             p4.addDependency(p3);
597
             p1.addDependency(p4);
598
 
599
 
600
             Package  p1fixed = createWip(400, "p1.cr");
601
             p1fixed.resetDependencies();
602
             testPackageCollection.add(p1fixed);
603
 
604
 
605
            rippleEngine.planRelease(false);
606
        }
607
        catch (Exception e)
608
        {
609
        }
610
 
611
        checkBuildFile(tName);
612
    }
613
 
614
    /**
615
     * Create a mesh of packages
616
     * Create a dependencies
617
     * Create a WIP to 'create' a circular dependency
618
     * 
619
     * Should detect that added package will create issue
620
     * 
621
     */
622
    @Test
623
    public void RippleTest_8()
624
    {
625
        String tName = "ripple8";
626
        mLogger.debug("RippleTest {}", tName);
627
        System.out.println("RippleTest " + tName);
628
        releaseManager = new myReleaseManager(tName, "not used", "not used");
629
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
630
 
631
        try
632
        {
633
            rippleEngine.collectMetaData();
634
 
635
            //  Generate basic test set and then tweak for this test
636
            /*    A basic set of packages
637
             */
638
             Package  p1 = createPackage(1, "p1");
639
             Package  p2 = createPackage(2, "p2");
640
             Package  p3 = createPackage(3, "p3");
641
             Package  p4 = createPackage(4, "p4");
642
 
643
             testPackageCollection.add(p1);
644
             testPackageCollection.add(p2);
645
             testPackageCollection.add(p3);
646
             testPackageCollection.add(p4);
647
 
648
             // Create dependency
649
             p2.addDependency(p1);
650
             p3.addDependency(p2);
651
             p4.addDependency(p3);
652
 
653
             Package  p1Broken = createWip(400, "p1.cr");
654
             p1Broken.resetDependencies().addDependency(p4);
655
 
656
          // Create a ripple, so we get some output
657
             Package  p5 = createPackage(5, "p5");
658
             testPackageCollection.add(p5);
659
             requestRipple("p5.cr");
660
 
661
            rippleEngine.planRelease(false);
662
        }
663
        catch (Exception e)
664
        {
665
        }
666
 
667
        checkBuildFile(tName);
668
    }
669
 
670
    /**
671
     * Create a WIP that will fail applyPV
672
     *      Expect it to be rejected
673
     *      Expect an email
674
     */
675
    @Test
676
    public void RippleTest_9()
677
    {
678
        String tName = "ripple9";
679
        mLogger.debug("RippleTest {}", tName);
680
        System.out.println("RippleTest " + tName);
681
        releaseManager = new myReleaseManager(tName, "not used", "not used");
682
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
683
 
684
        try
685
        {
686
            rippleEngine.collectMetaData();
687
 
688
            //  Generate basic test set and then tweak for this test
689
            /*    A basic set of packages
690
             */
691
             Package  p1 = createPackage(1, "p1");
692
             Package  p2 = createPackage(2, "p2");
693
             Package  p3 = createPackage(3, "p3");
694
             Package  p4 = createPackage(4, "p4");
695
 
696
             testPackageCollection.add(p1);
697
             testPackageCollection.add(p2);
698
             testPackageCollection.add(p3);
699
             testPackageCollection.add(p4);
700
 
701
             p2.addDependency(p1);
702
 
703
             Package  p1Broken = createWip(400, "p1.cr");
704
             p1Broken.mVersion = "BadVersion";
705
 
706
             // Create a ripple, so we get some output
707
             requestRipple("p4.cr");
708
 
709
            rippleEngine.planRelease(false);
710
        }
711
        catch (Exception e)
712
        {
713
        }
714
 
715
        checkBuildFile(tName);
716
    }
717
 
718
 
719
    /**
720
     *  Create a mesh of packages
721
     *  Mark bottom as being rippled
722
     *  
723
     *  Expect a single plan with the next two two candidate packages
724
     */
725
    @Test
726
    public void RippleTest_10()
727
    {
728
        String tName = "ripple10";
729
        mLogger.debug("RippleTest {}", tName);
730
        System.out.println("RippleTest " + tName);
731
        releaseManager = new myReleaseManager(tName, "not used", "not used");
732
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
733
 
734
        try
735
        {
736
            rippleEngine.collectMetaData();
737
 
738
            //  Generate basic test set and then tweak for this test
739
            initTestPackages("p");
740
 
741
            ripplePackage("p1.cr");
742
            rippleEngine.planRelease(false);
743
        }
744
        catch (Exception e)
745
        {
746
        }
747
 
748
        checkBuildFile(tName);
749
    }
750
 
751
    /**
752
     *  Create two meshes of packages
753
     *  Create a ripple in both
754
     */
755
    @Test
756
    public void RippleTest_11()
757
    {
758
        String tName = "ripple11";
759
        mLogger.debug("RippleTest {}", tName);
760
        System.out.println("RippleTest " + tName);
761
        releaseManager = new myReleaseManager(tName, "not used", "not used");
762
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
763
 
764
        try
765
        {
766
            rippleEngine.collectMetaData();
767
 
768
            //  Generate basic test set and then tweak for this test
769
            initTestPackages("p");
770
            initTestPackages("z");
771
            setBuildTime("z4.cr", 200);
772
 
773
            createWip(2000, "p1.cr");
774
            createWip(2000, "z1.cr");
775
 
776
            rippleEngine.planRelease(false);
777
        }
778
        catch (Exception e)
779
        {
780
        }
781
 
782
        checkBuildFile(tName);
783
    }
784
 
785
    /**
786
     *  Create a simple dependency chain
787
     *  Mark one of the packages as an SDK
788
     *  Ensure that a ripple will not affect the SDK package
789
     *  
790
     */
791
    @Test
792
    public void RippleTest_12()
793
    {
794
        String tName = "ripple12";
795
        mLogger.debug("RippleTest {}", tName);
796
        System.out.println("RippleTest " + tName);
797
        releaseManager = new myReleaseManager(tName, "not used", "not used");
798
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
799
 
800
        try
801
        {
802
            rippleEngine.collectMetaData();
803
 
804
            /*    A basic set of packages
805
             */
806
             Package  p1 = createPackage(1, "p1");
807
             Package  p2 = createPackage(2, "p2");
808
             Package  p3 = createPackage(3, "p3");
809
             Package  p4 = createPackage(4, "p4");
810
             Package  p5 = createPackage(4, "p5");
811
 
812
             testPackageCollection.add(p1);
813
             testPackageCollection.add(p2);
814
             testPackageCollection.add(p3);
815
             testPackageCollection.add(p4);
816
             testPackageCollection.add(p5);
817
 
818
             p2.addDependency(p1);
819
             p3.addDependency(p1);
820
             p4.addDependency(p3).addDependency(p2);
821
             p5.addDependency(p3);
822
 
823
             // Mark SDK
824
             p3.mIsSdk = true;
825
 
826
             // Create a ripple, so we get some output
827
             requestRipple("p1.cr");
828
 
829
            rippleEngine.planRelease(false);
830
        }
831
        catch (Exception e)
832
        {
833
        }
834
 
835
        checkBuildFile(tName);
836
    }
837
 
838
    /**
839
     *  Create a simple dependency chain
840
     *  Mark one of the packages as having a rippleStop
7081 dpurdie 841
     *  Create a ripple
7079 dpurdie 842
     *  
7081 dpurdie 843
     *  Ensure that a ripple will not propagate through the ripple stop 
844
     *  
7079 dpurdie 845
     */
846
    @Test
847
    public void RippleTest_13()
848
    {
849
        String tName = "ripple13";
850
        mLogger.debug("RippleTest {}", tName);
851
        System.out.println("RippleTest " + tName);
852
        releaseManager = new myReleaseManager(tName, "not used", "not used");
853
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
854
 
855
        try
856
        {
857
            rippleEngine.collectMetaData();
858
 
859
            /*    A basic set of packages
860
             */
861
             Package  p1 = createPackage(1, "p1");
862
             Package  p2 = createPackage(2, "p2");
863
             Package  p3 = createPackage(3, "p3");
864
             Package  p4 = createPackage(4, "p4");
865
             Package  p5 = createPackage(4, "p5");
866
 
867
             testPackageCollection.add(p1);
868
             testPackageCollection.add(p2);
869
             testPackageCollection.add(p3);
870
             testPackageCollection.add(p4);
871
             testPackageCollection.add(p5);
872
 
873
             p2.addDependency(p1);
874
             p3.addDependency(p1);
875
             p4.addDependency(p3).addDependency(p2);
876
             p5.addDependency(p3);
877
 
878
             // Mark SDK
879
             p3.mRippleStop = 's';
880
 
881
             // Create a ripple, so we get some output
882
             requestRipple("p1.cr");
883
 
884
            rippleEngine.planRelease(false);
885
        }
886
        catch (Exception e)
887
        {
888
        }
889
 
890
        checkBuildFile(tName);
891
    } 
892
 
893
    /**
894
     *  Create a simple dependency chain
895
     *  Create a WIP that is not already in the release
896
     *
897
     *  Ensure the WIP is included into the build set
898
     *  
899
     */
900
    @Test
901
    public void RippleTest_14()
902
    {
903
        String tName = "ripple14";
904
        mLogger.debug("RippleTest {}", tName);
905
        System.out.println("RippleTest " + tName);
906
        releaseManager = new myReleaseManager(tName, "not used", "not used");
907
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
908
 
909
        try
910
        {
911
            rippleEngine.collectMetaData();
912
 
913
            /*    A basic set of packages
914
             */
915
             Package  p1 = createPackage(1, "p1");
916
             Package  p2 = createPackage(2, "p2");
917
             Package  p3 = createPackage(3, "p3");
918
             Package  p4 = createPackage(4, "p4");
919
 
920
             testPackageCollection.add(p1);
921
             testPackageCollection.add(p2);
922
             testPackageCollection.add(p3);
923
             testPackageCollection.add(p4);
924
 
925
             p2.addDependency(p1);
926
             p3.addDependency(p2);
927
 
928
             // Mark as a WIP
929
             p4.mDirectlyPlanned = true;
930
 
931
 
932
            rippleEngine.planRelease(false);
933
        }
934
        catch (Exception e)
935
        {
936
        }
937
 
938
        checkBuildFile(tName);
939
    }
940
 
941
    /**
942
     *  Create a simple dependency chain
943
     *  Create a package that will be excluded
944
     *
945
     *  Ensure the upstream packages show up in the excluded list
946
     *  
947
     */
948
    @Test
949
    public void RippleTest_15()
950
    {
951
        String tName = "ripple15";
952
        mLogger.debug("RippleTest {}", tName);
953
        System.out.println("RippleTest " + tName);
954
        releaseManager = new myReleaseManager(tName, "not used", "not used");
955
        rippleEngine = new RippleEngine(releaseManager, 11111, true);
956
 
957
        try
958
        {
959
            rippleEngine.collectMetaData();
960
 
961
            /*    A basic set of packages
962
             */
963
             Package  p1 = createPackage(1, "p1");
964
             Package  p2 = createPackage(2, "p2");
965
             Package  p3 = createPackage(3, "p3");
966
             Package  p4 = createPackage(4, "p4");
967
             Package  p5 = createPackage(4, "p5");
968
             Package  p6 = createPackage(4, "p6");
969
 
970
             testPackageCollection.add(p1);
971
             testPackageCollection.add(p2);
972
             testPackageCollection.add(p3);
973
             testPackageCollection.add(p4);
974
             testPackageCollection.add(p5);
975
             testPackageCollection.add(p6);
976
 
977
             p2.addDependency(p1);
978
             p3.addDependency(p2);
979
             p4.addDependency(p2);
980
             p5.addDependency(p4);
981
 
982
             p2.mVersion = "BadVersion";
983
             ripplePackage("p1.cr");
984
 
985
             // Create a ripple, so we get some output
986
 
987
             requestRipple("p6.cr");
988
 
989
            rippleEngine.planRelease(false);
990
        }
991
        catch (Exception e)
992
        {
993
        }
994
 
995
        checkBuildFile(tName);
996
    }
997
 
998
}