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 (mailing list archive)
State Superseded
Delegated to: BPF
Headers show
Series [bpf-next,1/2] samples: bpf: Fix tracex7 error raised on the missing argument | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present success Link
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for bpf-next
netdev/subject_prefix success Link
netdev/cc_maintainers warning 5 maintainers not CCed: yhs@fb.com kpsingh@kernel.org kafai@fb.com john.fastabend@gmail.com songliubraving@fb.com
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 17 lines checked
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/header_inline success Link

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
> >
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)) {