lin-tan / CURE

For our ICSE21 paper "CURE: Code-Aware Neural Machine Translation for Automatic Program Repair" by Nan Jiang, Thibaud Lutellier, and Lin Tan
https://www.cs.purdue.edu/homes/lintan/publications/cure-icse21.pdf
Other
50 stars 17 forks source link

Patch Validation and Reproduce result from the paper #4

Open faysalhossain2007 opened 2 years ago

faysalhossain2007 commented 2 years ago

Thanks for building the great tool and sharing the code with the community!

It would be very helpful if you can upload the test cases from /tmp/validate_quixbugs/' and /tmp/validate_defect4j/.

Also I used your trained model to generate the patches with 100 beam size. It was not able to generate any correct patches or plausible patches. Also, I checked the validated_patches.json.json. But it also dont contain any patches with "plausible" tag.

I also checked out your validate_XX.py files. None of those contain any logic to detect correct patch. Are those updated files? Or am I missing something?

Can you please let me know how to reproduce the result from your paper on Defects4j dataset?

Thanks!

Elena6918 commented 1 year ago

The test cases from /tmp/validate_quixbugs/' and /tmp/validate_defect4j/ are folders of defects4j and quixbugs repo. To reproduce the result, you need to clone these repos and configure the path.

HanJin996 commented 1 year ago

When i use validate_defects4j.py to valid d4j reranked patches, it occured FileNotFoundError: [Errno 2] No such file or directory: '/home/lqy/MyProject/NPR_tools4data_leakage/new_test/nprtools/cure/candidate_patches/trans_D4J/tmpsource/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java' error. Am I miss something? I try to clone the repo of d4j to /tmp/validate_defect4j/ but nothing use.

HanJin996 commented 1 year ago

The error is a mistake which I make a wrong dir with "/home/lqy/MyProject/NPR_tools4data_leakage/new_test/nprtools/cure/candidate_patches/trans_D4J/tmp" missing a '/' at the end of the dir. But the model was unable to generated any correct patches or plausible patches (with 1000 beam size). I wonder if the identifier.txt and identifier.token were wrong? Because when gengrate the d4j_bpe.txt the "if(dataset == null)" will be "if dataset == null )", but "(" is in identifier.txt and identifier.token... I don't know why

SajedeNick1999 commented 1 year ago

The test cases from /tmp/validate_quixbugs/' and /tmp/validate_defect4j/ are folders of defects4j and quixbugs repo. To reproduce the result, you need to clone these repos and configure the path.

hello, can you explain more? I clone and installed defects4j in the cloned directory I have this files: cpanfile framework license.txt project_repos Dockerfile init.sh major README.md I have to use path of this folder instead of /tmp/validate_defect4j/ ? regards,