Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: new experience to get coverage report #1785

Merged
merged 513 commits into from
Jul 3, 2024

Conversation

AkashKumar7902
Copy link
Member

@AkashKumar7902 AkashKumar7902 commented Apr 6, 2024

Related Issue

Closes: #1735

Describe the changes you've made

Add coverage data to test report
coverage data will be appended for applications written in:

  • golang
  • node
  • python
  • java

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code style update (formatting, local variables)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Please let us know if any test cases are added

Please describe the tests(if any). Provide instructions how its affecting the coverage.

Describe if there is any unusual behaviour of your code(Write NA if there isn't)

A clear and concise description of it.

Checklist:

  • My code follows the style guidelines of this project.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.

Screenshots (if any)

Original Updated
original screenshot updated screenshot

EraKin575 and others added 30 commits December 28, 2023 17:14
* solved halting execution due to keploy config error

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* solved halting execution due to errors in keploy-config

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* solved halting execution due to errors in keploy-config

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* implemented passthrough in postgres parser

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* added continue

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* removed unnecessary packages

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

---------

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>
Co-authored-by: Sarthak Shyngle <50234097+Sarthak160@users.noreply.github.com>
* fix: runs the commands using the -c flag of sh

the sh shell provides a flag to run multiple commands from a single shell cmd. So using this we will be able to use the parsing of script cmds of shell

Signed-off-by: re-Tick <jain.ritik.1001@gmail.com>

---------

Signed-off-by: re-Tick <jain.ritik.1001@gmail.com>
* fix: remove binary match

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: add in memoryDb in test mode

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: merge conflicts

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: add binary matching with benchmark

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove mongo changes

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove print statements

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

---------

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
…y#1300)

* add coverage flag to implement serve

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* removed serve.go and moved functionality to test

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* changed workflow according to new changes

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* changed workflow according to new changes

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

---------

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>
* fix: updates the decode function for OpMsg section

the decode function is not able to distinguish the closing braces of the string json and sectionSingle, so used the prefix and suffix in place of regex to extract the document correctly

Signed-off-by: re-Tick <jain.ritik.1001@gmail.com>
* refactor: provide some null checks in pg parser

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>

* refactor: provide some null checks

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>

* refactor: change log object to zap logger

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>

---------

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>
keploy#1300)" (keploy#1319)

This reverts commit 013e6e2.

Co-authored-by: Sarthak Shyngle <50234097+Sarthak160@users.noreply.github.com>
Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
…adability (keploy#1276)

* ‘look by kind’changes in mysql

Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* base64 encoding-decoding for some packet

Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* refactor(mysqlparser): change binary lists in mysql mocks to base64 strings for readability

change binary lists in mysql mocks to base64 strings for readability and add a function to filter
out the firstSQL mock for handshake

Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* fix: run cmd using the shell's -c flag (keploy#1273)

* fix: runs the commands using the -c flag of sh

the sh shell provides a flag to run multiple commands from a single shell cmd. So using this we will be able to use the parsing of script cmds of shell

Signed-off-by: re-Tick <jain.ritik.1001@gmail.com>

---------

Signed-off-by: re-Tick <jain.ritik.1001@gmail.com>
Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* fix: unexpected behaviour with multiple dependencies (keploy#1214)

* fix: remove binary match

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: add in memoryDb in test mode

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: merge conflicts

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: add binary matching with benchmark

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove mongo changes

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove print statements

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

---------

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* ‘look by kind’changes in mysql

Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* refactor(mysql parser related files): add omitempty,flow to json,yaml tags in MYSQL

add omitempty,flow to json,yaml tags in MYSQL

Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* fix: unexpected behaviour with multiple dependencies (keploy#1214)

* fix: remove binary match

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: add in memoryDb in test mode

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: merge conflicts

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: add binary matching with benchmark

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove mongo changes

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove print statements

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

---------

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* fix: fixed typo of word gracefully (keploy#1299)

Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

* fix: generic bug (keploy#1297)

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>

---------

Signed-off-by: Hermione Dadheech <hermionedadheech@gmail.com>
Signed-off-by: re-Tick <jain.ritik.1001@gmail.com>
Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Co-authored-by: Ritik Jain <60597329+re-Tick@users.noreply.github.com>
Co-authored-by: Charan Kamarapu <kamarapucharan@gmail.com>
Co-authored-by: Asish Kumar <87874775+officialasishkumar@users.noreply.github.com>
Co-authored-by: Sarthak Shyngle <50234097+Sarthak160@users.noreply.github.com>
Co-authored-by: Neha Gupta <gneha21@yahoo.in>
keploy#1341)

* feat(pg-parser): ignore deletion of startup request mocks during match

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>

* refactor: improve debug logs

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>

---------

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>
* fix: refactor mock filtering and sorting logic

* fix: change postgres mocks to config from tcs

* refactor: save different mock names in yaml

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>

* refactor: made some code change

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>

* refactor: improve logging incase of no timestamp found

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>

---------

Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>
Co-authored-by: slayerjain <shubhamkjain@outlook.com>
Signed-off-by: Sarthak160 <rocksarthak45@gmail.com>
Co-authored-by: Shubham Jain <shubhamkjain@outlook.com>
Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Co-authored-by: Shubham Jain <shubhamkjain@outlook.com>
* fix: HTTP handling for partial header reception

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* fix: multiple content-length of http response in mocks

* bug: add nil check for destConn in test mode

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* enhanced: saving http mock in separate goroutine

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

---------

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>
* chore: logging an example when generate-config fails

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>

* refactor: removed unnecessary changes in mod files

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>

* refactor: removed unnecessary files

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>

---------

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>
* fix: generalize test-set name

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: error in mongo

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: add logs

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: if condition

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove print statements

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

---------

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Co-authored-by: Shubham Jain <shubhamkjain@outlook.com>
Co-authored-by: Pranshu Srivastava <37413698+PranshuSrivastava@users.noreply.github.com>
* fix: matching logic

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: change boolean

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: limit unfiltered mocks to 10

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove go-memdb

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: remove mock limit

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: append Id

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: postgres matching bug

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

---------

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Co-authored-by: Shubham Jain <shubhamkjain@outlook.com>
Signed-off-by: slayerjain <shubhamkjain@outlook.com>
…#1407)

* fix: empty req in case of multiple chunk resp

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* fix: missing requests and their timestamps (keploy#1405)

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add ebpf objects for amd64

* fix: set conn tracker processing event loop to 100ms

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

---------

Signed-off-by: slayerjain <shubhamkjain@outlook.com>
Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>
Co-authored-by: Gourav kumar <44055698+gouravkrosx@users.noreply.github.com>
* feat: updated file structure for test reports

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

---------

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>
Co-authored-by: Ritik Jain <60597329+re-Tick@users.noreply.github.com>
…y#1366)

* feat(command) : test return non-zero exit code

Signed-off-by: seipan <yamasakipann0218@gmail.com>

* fix : remove log & use os.Exit()

Signed-off-by: seipan <yamasakipann0218@gmail.com>

---------

Signed-off-by: seipan <yamasakipann0218@gmail.com>
Co-authored-by: Ritik Jain <60597329+re-Tick@users.noreply.github.com>
Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>
* updated file structure for test reports

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* updated file structure for test reports

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* updated file structure for test reports

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* updated file structure for test reports

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* updated file structure for test reports

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* updated file structure for test reports

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* resolving conflicts

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* Revert "Merge branch 'coverage'"

This reverts commit b310711, reversing
changes made to 51f0457.

* updated PR

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* updated PR

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

---------

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>
…#1432)

* fixed workflows and removed serve package

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed workflows and removed serve package

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed workflows

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed workflows

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* fixed java workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* changed java workflows

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* changed docker container name in workflows

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* changed docker container name in workflows

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* changed docker container name in workflows

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

* changed python workflow

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>

---------

Signed-off-by: EraKin575 <tejaskumar574@gmail.com>
* fixed unknown path problem in docker

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>

* added changes to the test mode as well

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>

* fix: made changes according to the comments

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>

* fix: build errors

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>

---------

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>
Co-authored-by: Gourav kumar <44055698+gouravkrosx@users.noreply.github.com>
Copy link
Member

@slayerjain slayerjain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks awesome but it's a big change.

I think we should create a coverage package which hosts most of the logic related to coverage parsing, calculation, etc.

Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
@AkashKumar7902 AkashKumar7902 force-pushed the add-coverage-data-to-report branch 3 times, most recently from 1babc7b to 7929af8 Compare July 1, 2024 09:36
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
AkashKumar7902 and others added 4 commits July 2, 2024 15:11
we can't preprocess in case of commandtype as docker because preprocess appends language specific coverage executable to the command provided and the command provided by the user in case of docker would start with "docker", so we don't want to append it in provided command rather we want to append it in the command to  run in the docker container which can be extracted through docker client. but this approach is not good as after modifying the docker internal command we need to restart the container, that's why we are taking a different approach in which users have to edit their application command in dockerfile so preprocess won't happen from our end.

Signed-off-by: Akash Kumar <meakash7902@gmail.com>
To support running `coverage json` command internally in keploy's docker, we need to install coveragepy

Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
Signed-off-by: Akash Kumar <meakash7902@gmail.com>
@charankamarapu charankamarapu self-requested a review July 3, 2024 09:35
Copy link
Member

@charankamarapu charankamarapu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@charankamarapu charankamarapu merged commit d28ef53 into keploy:main Jul 3, 2024
19 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Jul 3, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feature]: Add code coverage data to keploy test report