diff mbox series

[bpf-next,1/2] samples: bpf: Fix tracex7 error raised on the missing argument

Message ID 20210724152124.9762-1-claudiajkang@gmail.com
State Superseded
Headers show
Series [bpf-next,1/2] samples: bpf: Fix tracex7 error raised on the missing argument | expand

Commit Message

Juhee Kang July 24, 2021, 3:21 p.m. UTC
The current behavior of 'tracex7' doesn't consist with other bpf samples
tracex{1..6}. Other samples do not require any argument to run with, but
tracex7 should be run with btrfs device argument. (it should be executed
with test_override_return.sh)

Currently, tracex7 doesn't have any description about how to run this
program and raises an unexpected error. And this result might be
confusing since users might not have a hunch about how to run this
program.

    // Current behavior
    # ./tracex7
    sh: 1: Syntax error: word unexpected (expecting ")")
    // Fixed behavior
    # ./tracex7
    ERROR: Run with the btrfs device argument!

In order to fix this error, this commit adds logic to report a message
and exit when running this program with a missing argument.

Additionally in test_override_return.sh, there is a problem with
multiple directory(tmpmnt) creation. So in this commit adds a line with
removing the directory with every execution.

Signed-off-by: Juhee Kang <claudiajkang@gmail.com>
---
 samples/bpf/test_override_return.sh | 1 +
 samples/bpf/tracex7_user.c          | 5 +++++
 2 files changed, 6 insertions(+)

Comments

Yonghong Song July 26, 2021, 2:34 a.m. UTC | #1
On 7/24/21 8:21 AM, Juhee Kang wrote:
> The current behavior of 'tracex7' doesn't consist with other bpf samples

> tracex{1..6}. Other samples do not require any argument to run with, but

> tracex7 should be run with btrfs device argument. (it should be executed

> with test_override_return.sh)

> 

> Currently, tracex7 doesn't have any description about how to run this

> program and raises an unexpected error. And this result might be

> confusing since users might not have a hunch about how to run this

> program.

> 

>      // Current behavior

>      # ./tracex7

>      sh: 1: Syntax error: word unexpected (expecting ")")

>      // Fixed behavior

>      # ./tracex7

>      ERROR: Run with the btrfs device argument!

> 

> In order to fix this error, this commit adds logic to report a message

> and exit when running this program with a missing argument.

> 

> Additionally in test_override_return.sh, there is a problem with

> multiple directory(tmpmnt) creation. So in this commit adds a line with

> removing the directory with every execution.

> 

> Signed-off-by: Juhee Kang <claudiajkang@gmail.com>


Acked-by: Yonghong Song <yhs@fb.com>
Andrii Nakryiko July 26, 2021, 8:08 p.m. UTC | #2
On Sat, Jul 24, 2021 at 8:21 AM Juhee Kang <claudiajkang@gmail.com> wrote:
>

> The current behavior of 'tracex7' doesn't consist with other bpf samples

> tracex{1..6}. Other samples do not require any argument to run with, but

> tracex7 should be run with btrfs device argument. (it should be executed

> with test_override_return.sh)

>

> Currently, tracex7 doesn't have any description about how to run this

> program and raises an unexpected error. And this result might be

> confusing since users might not have a hunch about how to run this

> program.

>

>     // Current behavior

>     # ./tracex7

>     sh: 1: Syntax error: word unexpected (expecting ")")

>     // Fixed behavior

>     # ./tracex7

>     ERROR: Run with the btrfs device argument!

>

> In order to fix this error, this commit adds logic to report a message

> and exit when running this program with a missing argument.

>

> Additionally in test_override_return.sh, there is a problem with

> multiple directory(tmpmnt) creation. So in this commit adds a line with

> removing the directory with every execution.

>

> Signed-off-by: Juhee Kang <claudiajkang@gmail.com>

> ---

>  samples/bpf/test_override_return.sh | 1 +

>  samples/bpf/tracex7_user.c          | 5 +++++

>  2 files changed, 6 insertions(+)

>

> diff --git a/samples/bpf/test_override_return.sh b/samples/bpf/test_override_return.sh

> index e68b9ee6814b..6480b55502c7 100755

> --- a/samples/bpf/test_override_return.sh

> +++ b/samples/bpf/test_override_return.sh

> @@ -1,5 +1,6 @@

>  #!/bin/bash

>

> +rm -rf tmpmnt


Do we need -rf or -r would do?

>  rm -f testfile.img

>  dd if=/dev/zero of=testfile.img bs=1M seek=1000 count=1

>  DEVICE=$(losetup --show -f testfile.img)

> diff --git a/samples/bpf/tracex7_user.c b/samples/bpf/tracex7_user.c

> index fdcd6580dd73..8be7ce18d3ba 100644

> --- a/samples/bpf/tracex7_user.c

> +++ b/samples/bpf/tracex7_user.c

> @@ -14,6 +14,11 @@ int main(int argc, char **argv)

>         int ret = 0;

>         FILE *f;

>

> +       if (!argv[1]) {

> +               fprintf(stderr, "ERROR: Run with the btrfs device argument!\n");

> +               return 0;

> +       }

> +

>         snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);

>         obj = bpf_object__open_file(filename, NULL);

>         if (libbpf_get_error(obj)) {

> --

> 2.27.0

>
Juhee Kang July 27, 2021, 3:32 a.m. UTC | #3
On Tue, Jul 27, 2021 at 5:08 AM Andrii Nakryiko
<andrii.nakryiko@gmail.com> wrote:
>

> On Sat, Jul 24, 2021 at 8:21 AM Juhee Kang <claudiajkang@gmail.com> wrote:

> >

> > The current behavior of 'tracex7' doesn't consist with other bpf samples

> > tracex{1..6}. Other samples do not require any argument to run with, but

> > tracex7 should be run with btrfs device argument. (it should be executed

> > with test_override_return.sh)

> >

> > Currently, tracex7 doesn't have any description about how to run this

> > program and raises an unexpected error. And this result might be

> > confusing since users might not have a hunch about how to run this

> > program.

> >

> >     // Current behavior

> >     # ./tracex7

> >     sh: 1: Syntax error: word unexpected (expecting ")")

> >     // Fixed behavior

> >     # ./tracex7

> >     ERROR: Run with the btrfs device argument!

> >

> > In order to fix this error, this commit adds logic to report a message

> > and exit when running this program with a missing argument.

> >

> > Additionally in test_override_return.sh, there is a problem with

> > multiple directory(tmpmnt) creation. So in this commit adds a line with

> > removing the directory with every execution.

> >

> > Signed-off-by: Juhee Kang <claudiajkang@gmail.com>

> > ---

> >  samples/bpf/test_override_return.sh | 1 +

> >  samples/bpf/tracex7_user.c          | 5 +++++

> >  2 files changed, 6 insertions(+)

> >

> > diff --git a/samples/bpf/test_override_return.sh b/samples/bpf/test_override_return.sh

> > index e68b9ee6814b..6480b55502c7 100755

> > --- a/samples/bpf/test_override_return.sh

> > +++ b/samples/bpf/test_override_return.sh

> > @@ -1,5 +1,6 @@

> >  #!/bin/bash

> >

> > +rm -rf tmpmnt

>

> Do we need -rf or -r would do?

>


It works properly using only -r.
Thanks for pointing it out! I will stick to this method.

I will send the next version as soon as possible.

> >  rm -f testfile.img

> >  dd if=/dev/zero of=testfile.img bs=1M seek=1000 count=1

> >  DEVICE=$(losetup --show -f testfile.img)

> > diff --git a/samples/bpf/tracex7_user.c b/samples/bpf/tracex7_user.c

> > index fdcd6580dd73..8be7ce18d3ba 100644

> > --- a/samples/bpf/tracex7_user.c

> > +++ b/samples/bpf/tracex7_user.c

> > @@ -14,6 +14,11 @@ int main(int argc, char **argv)

> >         int ret = 0;

> >         FILE *f;

> >

> > +       if (!argv[1]) {

> > +               fprintf(stderr, "ERROR: Run with the btrfs device argument!\n");

> > +               return 0;

> > +       }

> > +

> >         snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);

> >         obj = bpf_object__open_file(filename, NULL);

> >         if (libbpf_get_error(obj)) {

> > --

> > 2.27.0

> >




-- 

Best regards,
Juhee Kang
diff mbox series

Patch

diff --git a/samples/bpf/test_override_return.sh b/samples/bpf/test_override_return.sh
index e68b9ee6814b..6480b55502c7 100755
--- a/samples/bpf/test_override_return.sh
+++ b/samples/bpf/test_override_return.sh
@@ -1,5 +1,6 @@ 
 #!/bin/bash
 
+rm -rf tmpmnt
 rm -f testfile.img
 dd if=/dev/zero of=testfile.img bs=1M seek=1000 count=1
 DEVICE=$(losetup --show -f testfile.img)
diff --git a/samples/bpf/tracex7_user.c b/samples/bpf/tracex7_user.c
index fdcd6580dd73..8be7ce18d3ba 100644
--- a/samples/bpf/tracex7_user.c
+++ b/samples/bpf/tracex7_user.c
@@ -14,6 +14,11 @@  int main(int argc, char **argv)
 	int ret = 0;
 	FILE *f;
 
+	if (!argv[1]) {
+		fprintf(stderr, "ERROR: Run with the btrfs device argument!\n");
+		return 0;
+	}
+
 	snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]);
 	obj = bpf_object__open_file(filename, NULL);
 	if (libbpf_get_error(obj)) {