Skip to content

raisagandi/ecs160-hw4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raisa Gandi Putri
Atharva Chalke
----------------------------------------------------------------------------

File structure:
> maxTweeter.c
> /in
> /out
> /largecsv

We need the directories /in and /out for running AFL on our program
./in contains the test csv files that I created

Some of the CSV files (with too many lines) are not in /in because
   AFL cannot handle files that are too large

------------------------------------------------------------------------------

RUNNING AFL

# In TERMINAL 1

# launching the AFL Docker container
docker run --security-opt seccomp=unconfined --name=afl-container -it caseycas/afl-docker

# IN TERMINAL 2 (our local filesystem)

# put our files(or directory) in the root of the afl-container
docker cp ecs160-hw4 afl-container:/

# BACK TO TERMINAL 1, inside the Docker container

# compile our code
cd ecs160-hw4
afl-clang -g -o maxTweeter maxTweeter.c

# and then run AFL
afl-fuzz -i in -o out —- ./maxTweeter @@

------------------------------------------------------------------------------

Testing TODO (please cross off each item when done):
1. If file is invalid, exit(0) [ Done ]
2. If file empty, it's invalid [ Done ]
3. Check if the first argument is the csv file. [ Done ]
4. Valid file should have MAXLENLINE lines [ Done ]
5. Valid file should have MAXCHARS per line [ Done ]
6. Check for empty header [ Done ]
7. Put everything - logic, data structure - in maxTweeter.c [ Done ]

HEADERS
8. A valid file should NOT have duplicate headers [ Done ]
9. If header does not contain "name" or name, it is invalid [ Done ]
10. If header is surrounded by only one quote, it's invalid [ Done ] 
11. If header is literally " , it is invalid [ Done ]
12. A header can be an empty string (i.e. a line can definitely end with a comma) [ Done ]

TEXT(NOT HEADERS)
13. If text (not header) is surrounded by only one quote, it's invalid [ Done ]
14. If one particular column header is surrounded by quotes, 
    its entire column should be surrounded by quotes [ Done ]
15. And the other way around (no quote header -> no quotes column) [ Done ]
16. If the number of text field doesn't match the number of headers, invalid [ Done ]
17. If text is literally " , it is invalid [ Done ]
18. A body of text can end with a comma [ Done ]

FILE FORMAT
19. A file like this "blah.csv.csv" is invalid [ Done ]
20. A nonexistent file is invalid [ Done ]

AFL
21. Run AFL for at least 15 minutes [ Done ]

PENDING Piazza answer
22. Still waiting to know if empty line (after header) is considered valid/invalid [ Done ]

-----------------------------------------------------------------------------

CSV guide:

1. test.csv is an invalid file because one of the tweets is surrounded by quotes and the header isn't
2. We've placed large CSV files in another directory (/largecsv)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published