Thomas Buck пре 10 година
родитељ
комит
60300a9418
9 измењених фајлова са 85 додато и 41 уклоњено
  1. 2
    0
      ChangeLog
  2. 8
    0
      Makefile
  3. 6
    6
      src/MatMath.cpp
  4. 1
    1
      src/Particle.cpp
  5. 8
    1
      src/Texture.cpp
  6. 1
    1
      src/TombRaider.cpp
  7. 2
    2
      src/memory_test.cpp
  8. 15
    15
      test/greatest.h
  9. 42
    15
      test/memory_test.cpp

+ 2
- 0
ChangeLog Прегледај датотеку

7
 
7
 
8
 	[ 20140201 ]
8
 	[ 20140201 ]
9
 	* Rewrote Memory Unit Test using greatest
9
 	* Rewrote Memory Unit Test using greatest
10
+	* Used C++ static analysis tool cppcheck and tried to fix
11
+	  its warnings
10
 
12
 
11
 	[ 20140131 ]
13
 	[ 20140131 ]
12
 	* All unit tests buildable again and no more warnings
14
 	* All unit tests buildable again and no more warnings

+ 8
- 0
Makefile Прегледај датотеку

205
 
205
 
206
 #################################################################
206
 #################################################################
207
 
207
 
208
+check:
209
+	cppcheck -Iinclude $(GL_DEFS) $(AUDIO_DEFS) --enable=information .
210
+
211
+fullCheck:
212
+	cppcheck -Iinclude $(GL_DEFS) $(AUDIO_DEFS) --enable=all --inconclusive --std=posix .
213
+
214
+#################################################################
215
+
208
 clean: clean-small clean-dep clean-doc
216
 clean: clean-small clean-dep clean-doc
209
 
217
 
210
 clean-small: clean-build clean-test clean-obj 
218
 clean-small: clean-build clean-test clean-obj 

+ 6
- 6
src/MatMath.cpp Прегледај датотеку

77
     {
77
     {
78
         // One intersection
78
         // One intersection
79
         mu = -b/(2*a) ;
79
         mu = -b/(2*a) ;
80
-        intersectionA[1] = posA[0] + mu*(posB[0]-posA[0]);
81
-        intersectionA[2] = posA[1] + mu*(posB[1]-posA[1]);
82
-        intersectionA[3] = posA[2] + mu*(posB[2]-posA[2]);
80
+        intersectionA[0] = posA[0] + mu*(posB[0]-posA[0]);
81
+        intersectionA[1] = posA[1] + mu*(posB[1]-posA[1]);
82
+        intersectionA[2] = posA[2] + mu*(posB[2]-posA[2]);
83
 
83
 
84
         return 1;
84
         return 1;
85
     }
85
     }
89
 
89
 
90
         // First intersection
90
         // First intersection
91
         mu = (-b + sqrtf( square(b) - 4.0f*a*c)) / (2.0f*a);
91
         mu = (-b + sqrtf( square(b) - 4.0f*a*c)) / (2.0f*a);
92
-        intersectionA[1] = posA[0] + mu*(posB[0]-posA[0]);
93
-        intersectionA[2] = posA[1] + mu*(posB[1]-posA[1]);
94
-        intersectionA[3] = posA[2] + mu*(posB[2]-posA[2]);
92
+        intersectionA[0] = posA[0] + mu*(posB[0]-posA[0]);
93
+        intersectionA[1] = posA[1] + mu*(posB[1]-posA[1]);
94
+        intersectionA[2] = posA[2] + mu*(posB[2]-posA[2]);
95
 
95
 
96
         // Second intersection
96
         // Second intersection
97
         mu = (-b - sqrtf(square(b) - 4.0f*a*c)) / (2.0f*a);
97
         mu = (-b - sqrtf(square(b) - 4.0f*a*c)) / (2.0f*a);

+ 1
- 1
src/Particle.cpp Прегледај датотеку

71
 void Particle::Reset()
71
 void Particle::Reset()
72
 {
72
 {
73
     // Mongoose 2002.01.01, Ah, how old is that code?
73
     // Mongoose 2002.01.01, Ah, how old is that code?
74
-#ifdef OBSOLOETE
74
+#ifdef OBSOLETE
75
     _active = true;
75
     _active = true;
76
     _life = 1.0;
76
     _life = 1.0;
77
     _blend = (float)(rand() % 100) / 1000.0 + 0.003;
77
     _blend = (float)(rand() % 100) / 1000.0 + 0.003;

+ 8
- 1
src/Texture.cpp Прегледај датотеку

846
         {
846
         {
847
             delete [] image;
847
             delete [] image;
848
         }
848
         }
849
+        delete [] swap_row;
849
 
850
 
850
         printf("glScreenShot> ERROR: Couldn't allocate image!\n");
851
         printf("glScreenShot> ERROR: Couldn't allocate image!\n");
851
         return;
852
         return;
870
     {
871
     {
871
         printf("glScreenShot> ERROR: Couldn't write screenshot.\n");
872
         printf("glScreenShot> ERROR: Couldn't write screenshot.\n");
872
         perror("glScreenShot> ERROR: ");
873
         perror("glScreenShot> ERROR: ");
874
+        delete [] image;
875
+        delete [] swap_row;
873
         return;
876
         return;
874
     }
877
     }
875
 
878
 
929
     {
932
     {
930
         perror("glScreenShot> Disk write failed.\n");
933
         perror("glScreenShot> Disk write failed.\n");
931
         fclose(f);
934
         fclose(f);
935
+        delete [] image;
932
         return;
936
         return;
933
     }
937
     }
934
 
938
 
1050
     tempin = new float[original_width * original_height * components * sizeof(float)];
1054
     tempin = new float[original_width * original_height * components * sizeof(float)];
1051
     tempout = new float[width * height * components * sizeof(float)];
1055
     tempout = new float[width * height * components * sizeof(float)];
1052
 
1056
 
1053
-    if (!tempout || !tempin)
1057
+    if (!tempout || !tempin || !timage)
1054
     {
1058
     {
1055
         if (tempout)
1059
         if (tempout)
1056
             delete [] tempout;
1060
             delete [] tempout;
1058
         if (tempin)
1062
         if (tempin)
1059
             delete [] tempin;
1063
             delete [] tempin;
1060
 
1064
 
1065
+        if (timage)
1066
+            delete [] timage;
1067
+
1061
         printf("Oh shit out of memory!\n");
1068
         printf("Oh shit out of memory!\n");
1062
         return NULL;
1069
         return NULL;
1063
     }
1070
     }

+ 1
- 1
src/TombRaider.cpp Прегледај датотеку

3923
     sprite_seq_t *r_mesh;
3923
     sprite_seq_t *r_mesh;
3924
     tr2_item_t *item;
3924
     tr2_item_t *item;
3925
 
3925
 
3926
-
3926
+    r_mesh = Mesh();
3927
     item = Item();
3927
     item = Item();
3928
     sprite_textures = Sprite();
3928
     sprite_textures = Sprite();
3929
     sprite_sequence = SpriteSequence();
3929
     sprite_sequence = SpriteSequence();

+ 2
- 2
src/memory_test.cpp Прегледај датотеку

426
 
426
 
427
 #ifdef DEBUG_MEMORY_RBTREE
427
 #ifdef DEBUG_MEMORY_RBTREE
428
         printf(" :%s%s)",
428
         printf(" :%s%s)",
429
-                (!tree->parent) ? " (root, " : " ("),
430
-            (tree->color == RB_BLACK) ? "black" : "red");
429
+                ((!tree->parent) ? " (root, " : " ("),
430
+            ((tree->color == RB_BLACK) ? "black" : "red"));
431
 #endif
431
 #endif
432
     }
432
     }
433
 
433
 

+ 15
- 15
test/greatest.h Прегледај датотеку

510
 /* Handle command-line arguments, etc. */
510
 /* Handle command-line arguments, etc. */
511
 #define GREATEST_MAIN_BEGIN()                                           \
511
 #define GREATEST_MAIN_BEGIN()                                           \
512
     do {                                                                \
512
     do {                                                                \
513
-        int i = 0;                                                      \
513
+        int _i = 0;                                                      \
514
         memset(&greatest_info, 0, sizeof(greatest_info));               \
514
         memset(&greatest_info, 0, sizeof(greatest_info));               \
515
         if (greatest_info.width == 0) {                                 \
515
         if (greatest_info.width == 0) {                                 \
516
             greatest_info.width = GREATEST_DEFAULT_WIDTH;               \
516
             greatest_info.width = GREATEST_DEFAULT_WIDTH;               \
517
         }                                                               \
517
         }                                                               \
518
-        for (i = 1; i < argc; i++) {                                    \
519
-            if (0 == strcmp("-t", argv[i])) {                           \
520
-                if (argc <= i + 1) {                                    \
518
+        for (_i = 1; _i < argc; _i++) {                                    \
519
+            if (0 == strcmp("-t", argv[_i])) {                           \
520
+                if (argc <= _i + 1) {                                    \
521
                     greatest_usage(argv[0]);                            \
521
                     greatest_usage(argv[0]);                            \
522
                     exit(EXIT_FAILURE);                                 \
522
                     exit(EXIT_FAILURE);                                 \
523
                 }                                                       \
523
                 }                                                       \
524
-                greatest_info.test_filter = argv[i+1];                  \
525
-                i++;                                                    \
526
-            } else if (0 == strcmp("-s", argv[i])) {                    \
527
-                if (argc <= i + 1) {                                    \
524
+                greatest_info.test_filter = argv[_i+1];                  \
525
+                _i++;                                                    \
526
+            } else if (0 == strcmp("-s", argv[_i])) {                    \
527
+                if (argc <= _i + 1) {                                    \
528
                     greatest_usage(argv[0]);                            \
528
                     greatest_usage(argv[0]);                            \
529
                     exit(EXIT_FAILURE);                                 \
529
                     exit(EXIT_FAILURE);                                 \
530
                 }                                                       \
530
                 }                                                       \
531
-                greatest_info.suite_filter = argv[i+1];                 \
532
-                i++;                                                    \
533
-            } else if (0 == strcmp("-f", argv[i])) {                    \
531
+                greatest_info.suite_filter = argv[_i+1];                 \
532
+                _i++;                                                    \
533
+            } else if (0 == strcmp("-f", argv[_i])) {                    \
534
                 greatest_info.flags |= GREATEST_FLAG_FIRST_FAIL;        \
534
                 greatest_info.flags |= GREATEST_FLAG_FIRST_FAIL;        \
535
-            } else if (0 == strcmp("-v", argv[i])) {                    \
535
+            } else if (0 == strcmp("-v", argv[_i])) {                    \
536
                 greatest_info.flags |= GREATEST_FLAG_VERBOSE;           \
536
                 greatest_info.flags |= GREATEST_FLAG_VERBOSE;           \
537
-            } else if (0 == strcmp("-l", argv[i])) {                    \
537
+            } else if (0 == strcmp("-l", argv[_i])) {                    \
538
                 greatest_info.flags |= GREATEST_FLAG_LIST_ONLY;         \
538
                 greatest_info.flags |= GREATEST_FLAG_LIST_ONLY;         \
539
-            } else if (0 == strcmp("-h", argv[i])) {                    \
539
+            } else if (0 == strcmp("-h", argv[_i])) {                    \
540
                 greatest_usage(argv[0]);                                \
540
                 greatest_usage(argv[0]);                                \
541
                 exit(EXIT_SUCCESS);                                     \
541
                 exit(EXIT_SUCCESS);                                     \
542
             } else {                                                    \
542
             } else {                                                    \
543
                 fprintf(GREATEST_STDOUT,                                \
543
                 fprintf(GREATEST_STDOUT,                                \
544
-                    "Unknown argument '%s'\n", argv[i]);                \
544
+                    "Unknown argument '%s'\n", argv[_i]);                \
545
                 greatest_usage(argv[0]);                                \
545
                 greatest_usage(argv[0]);                                \
546
                 exit(EXIT_FAILURE);                                     \
546
                 exit(EXIT_FAILURE);                                     \
547
             }                                                           \
547
             }                                                           \

+ 42
- 15
test/memory_test.cpp Прегледај датотеку

15
 extern rbtree_t *MEMORY_INFO;
15
 extern rbtree_t *MEMORY_INFO;
16
 bool check_red_black_tree(rbtree_t *current, bool valid, bool strict);
16
 bool check_red_black_tree(rbtree_t *current, bool valid, bool strict);
17
 
17
 
18
+int *i, *j, *k;
19
+float *l, *m, *n;
20
+
21
+void integerTeardown(void *) {
22
+    free(i);
23
+    free(j);
24
+    free(k);
25
+}
26
+
27
+void floatTeardown(void *) {
28
+    free(l);
29
+    free(m);
30
+    free(n);
31
+}
32
+
18
 TEST singleInteger() {
33
 TEST singleInteger() {
19
-    int *i = new int;
34
+    i = new int;
20
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
35
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
21
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), sizeof(int));
36
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), sizeof(int));
22
 
37
 
23
     delete i;
38
     delete i;
39
+    i = NULL;
24
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
40
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
25
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
41
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
26
     PASS();
42
     PASS();
27
 }
43
 }
28
 
44
 
29
 TEST arrayInteger() {
45
 TEST arrayInteger() {
30
-    int *i = new int[3];
46
+    i = new int[3];
31
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
47
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
32
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 3 * sizeof(int));
48
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 3 * sizeof(int));
33
 
49
 
34
     delete [] i;
50
     delete [] i;
51
+    i = NULL;
35
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
52
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
36
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
53
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
37
     PASS();
54
     PASS();
38
 }
55
 }
39
 
56
 
40
 TEST arrayCombinedInteger() {
57
 TEST arrayCombinedInteger() {
41
-    int *i = new int[3];
42
-    int *j = new int;
43
-    int *k = new int[3];
58
+    i = new int[3];
59
+    j = new int;
60
+    k = new int[3];
44
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
61
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
45
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 7 * sizeof(int));
62
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 7 * sizeof(int));
46
 
63
 
47
     delete [] i;
64
     delete [] i;
48
     delete j;
65
     delete j;
49
     delete [] k;
66
     delete [] k;
67
+    i = NULL;
68
+    j = NULL;
69
+    k = NULL;
50
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
70
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
51
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
71
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
52
     PASS();
72
     PASS();
53
 }
73
 }
54
 
74
 
55
 SUITE(integerSuite) {
75
 SUITE(integerSuite) {
76
+    SET_TEARDOWN(integerTeardown, NULL);
56
     RUN_TEST(singleInteger);
77
     RUN_TEST(singleInteger);
57
     RUN_TEST(arrayInteger);
78
     RUN_TEST(arrayInteger);
58
     RUN_TEST(arrayCombinedInteger);
79
     RUN_TEST(arrayCombinedInteger);
59
 }
80
 }
60
 
81
 
61
 TEST singleFloat() {
82
 TEST singleFloat() {
62
-    float *i = new float;
83
+    l = new float;
63
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
84
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
64
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), sizeof(float));
85
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), sizeof(float));
65
 
86
 
66
-    delete i;
87
+    delete l;
88
+    l = NULL;
67
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
89
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
68
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
90
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
69
     PASS();
91
     PASS();
70
 }
92
 }
71
 
93
 
72
 TEST arrayFloat() {
94
 TEST arrayFloat() {
73
-    float *i = new float[3];
95
+    l = new float[3];
74
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
96
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
75
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 3 * sizeof(float));
97
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 3 * sizeof(float));
76
 
98
 
77
-    delete [] i;
99
+    delete [] l;
100
+    l = NULL;
78
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
101
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
79
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
102
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
80
     PASS();
103
     PASS();
81
 }
104
 }
82
 
105
 
83
 TEST arrayCombinedFloat() {
106
 TEST arrayCombinedFloat() {
84
-    float *i = new float[3];
85
-    float *j = new float;
86
-    float *k = new float[3];
107
+    l = new float[3];
108
+    m = new float;
109
+    n = new float[3];
87
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
110
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
88
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 7 * sizeof(float));
111
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 7 * sizeof(float));
89
 
112
 
90
-    delete [] i;
91
-    delete j;
92
-    delete [] k;
113
+    delete [] l;
114
+    delete m;
115
+    delete [] n;
116
+    l = NULL;
117
+    m = NULL;
118
+    n = NULL;
93
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
119
     ASSERTm("No valid red-black tree!", check_red_black_tree(MEMORY_INFO, true, true));
94
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
120
     ASSERT_EQm("Memory-Tracking faulty!", memory_used(MEMORY_USED_BY_PROGRAM), 0);
95
     PASS();
121
     PASS();
96
 }
122
 }
97
 
123
 
98
 SUITE(floatSuite) {
124
 SUITE(floatSuite) {
125
+    SET_TEARDOWN(floatTeardown, NULL);
99
     RUN_TEST(singleFloat);
126
     RUN_TEST(singleFloat);
100
     RUN_TEST(arrayFloat);
127
     RUN_TEST(arrayFloat);
101
     RUN_TEST(arrayCombinedFloat);
128
     RUN_TEST(arrayCombinedFloat);

Loading…
Откажи
Сачувај