Compare commits

...

No commits in common. "master" and "cpplint/simple" have entirely different histories.

5 changed files with 209 additions and 2 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
joj3_result.json

View File

@ -1,3 +1,3 @@
# JOJ3 examples
# cpplint sillycode
Check other branches.
From <https://github.com/cpplint/cpplint/blob/develop/samples/silly-sample/src/sillycode.cpp>.

61
conf.json Normal file
View File

@ -0,0 +1,61 @@
{
"stage": {
"stages": [
{
"name": "cpplint",
"executor": {
"name": "sandbox",
"with": {
"default": {
"args": [
"cpplint",
"--recursive",
"."
],
"env": [
"PATH=/usr/bin:/bin:/usr/local/bin"
],
"cpuLimit": 10000000000,
"memoryLimit": 104857600,
"procLimit": 50,
"copyInDir": ".",
"copyOut": [
"stdout",
"stderr"
],
"stdin": {
"content": ""
},
"stdout": {
"name": "stdout",
"max": 65536
},
"stderr": {
"name": "stderr",
"max": 65536
}
}
}
},
"parsers": [
{
"name": "cpplint",
"with": {
"score": 0,
"comment": "check done",
"matches": [
{
"keywords": [
"whitespace",
"legal"
],
"score": 5
}
]
}
}
]
}
]
}
}

1
expected.json Normal file
View File

@ -0,0 +1 @@
[{"name":"cpplint","results":[{"score":-75,"comment":"### Test results summary\n\n1. `whitespace`: 14 occurrence(s), -70 point(s)\n2. `legal`: 1 occurrence(s), -5 point(s)\n"}],"force_quit":false}]

144
src/simple.cpp Normal file
View File

@ -0,0 +1,144 @@
#include <climits>
#include <cstdio>
#include <iostream>
#include <string>
// Uninitialized member warning
class BadClass {
int uninitMember;
public:
BadClass() {} // Missing member initialization
void print() { std::cout << uninitMember << std::endl; }
};
// Memory leak and resource management warnings
void memoryLeaks() {
int *ptr = new int(42);
// Missing delete - memory leak
int *array = new int[100];
delete ptr; // Wrong deletion type for array
// Double deletion
int *doubleDel = new int(5);
delete doubleDel;
delete doubleDel;
}
// Null pointer dereferencing
void nullPointerDereference(int *ptr) {
if (ptr == nullptr) {
*ptr = 42; // Dereferencing null pointer
}
}
// Array bounds warnings
void arrayBoundsIssues() {
int arr[5];
for (int i = 0; i <= 5; i++) { // Off-by-one error
arr[i] = i;
}
// Using uninitialized array
int uninitArr[10];
int sum = 0;
for (int i = 0; i < 10; i++) {
sum += uninitArr[i];
}
}
// Unused variables and dead code
void unusedVariables() {
int unused = 42;
std::string neverUsed = "hello";
if (true) {
int unreachable = 10;
} else {
// Dead code
std::cout << "This will never execute" << std::endl;
}
}
// Integer overflow
void integerOverflow() {
int max = INT_MAX;
max += 1; // Overflow
unsigned int i = 0;
for (i = 10; i >= 0; i--) { // Infinite loop due to unsigned underflow
std::cout << i << std::endl;
}
}
// Resource leak in exception
void resourceLeak() {
FILE *file = fopen("nonexistent.txt", "r");
// Missing fclose and no exception handling
char buffer[100];
fgets(buffer, 100, file);
}
// Uninitialized variable usage
void uninitializedVariables() {
int x;
if (x > 0) { // Using x without initialization
std::cout << "x is positive" << std::endl;
}
bool flag;
while (flag) { // Using uninitialized flag
std::cout << "Loop" << std::endl;
}
}
// Division by zero
void divisionByZero(int divisor) {
int result = 100 / divisor; // No check for zero
}
class Base {
public:
void normalFunction() {}
virtual void virtualFunction() {}
};
class Derived : public Base {
public:
void normalFunction() {} // Hiding base class function
void virtualFunction() {} // Missing override keyword
};
int main() {
// Memory management issues
memoryLeaks();
// Null pointer issues
int *nullPtr = nullptr;
nullPointerDereference(nullPtr);
// Array issues
arrayBoundsIssues();
// Dead code and unused variables
unusedVariables();
// Integer issues
integerOverflow();
// Resource management
resourceLeak();
// Uninitialized variables
uninitializedVariables();
// Division by zero
divisionByZero(0);
// Object slicing
Derived derived;
Base base = derived; // Object slicing
return 0;
}