Skip to content

Commit

Permalink
Simplify error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
mtorpey committed Sep 5, 2024
1 parent dfcbb1c commit 49b40cc
Show file tree
Hide file tree
Showing 10 changed files with 41 additions and 75 deletions.
28 changes: 9 additions & 19 deletions gap/PackageManager.gi
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,16 @@ function(string, args...)
version := true;
interactive := true;
if not IsString(string) then
ErrorNoReturn("PackageManager: InstallPackage: <string> must be a string");
ErrorNoReturn("<string> must be a string");
elif Length(args) > 2 then
ErrorNoReturn("PackageManager: InstallPackage: ",
"requires 1 to 3 arguments (not ",
Length(args) + 1, ")");
ErrorNoReturn("requires 1 to 3 arguments (not ", Length(args) + 1, ")");
elif Length(args) = 1 then
if IsString(args[1]) then
version := args[1];
elif args[1] = true or args[1] = false then
interactive := args[1];
else
ErrorNoReturn("PackageManager: InstallPackage:\n",
"2nd argument must be true or false or a version string");
ErrorNoReturn("2nd argument must be true or false or a version string");
fi;
elif Length(args) = 2 then
version := args[1];
Expand Down Expand Up @@ -60,17 +57,14 @@ function(name, interactive...)

# Check input
if not IsString(name) then
ErrorNoReturn("PackageManager: RemovePackage: <name> must be a string");
ErrorNoReturn("<name> must be a string");
elif Length(interactive) > 1 then
ErrorNoReturn("PackageManager: RemovePackage: ",
"requires 1 or 2 arguments (not ",
Length(interactive) + 1, ")");
ErrorNoReturn("requires 1 or 2 arguments (not ", Length(interactive) + 1, ")");
elif Length(interactive) = 1 then
if interactive[1] = true or interactive[1] = false then
interactive := interactive[1];
else
ErrorNoReturn("PackageManager: RemovePackage: ",
"<interactive> must be true or false");
ErrorNoReturn("<interactive> must be true or false");
fi;
else
interactive := true;
Expand Down Expand Up @@ -102,18 +96,14 @@ function(name, interactive...)

# Check input
if not IsString(name) then
ErrorNoReturn("PackageManager: UpdatePackage: ",
"<name> must be a string");
ErrorNoReturn("<name> must be a string");
elif Length(interactive) > 1 then
ErrorNoReturn("PackageManager: UpdatePackage: ",
"requires 1 or 2 arguments (not ",
Length(interactive) + 1, ")");
ErrorNoReturn("requires 1 or 2 arguments (not ", Length(interactive) + 1, ")");
elif Length(interactive) = 1 then
if interactive[1] = true or interactive[1] = false then
interactive := interactive[1];
else
ErrorNoReturn("PackageManager: UpdatePackage: ",
"<interactive> must be true or false");
ErrorNoReturn("<interactive> must be true or false");
fi;
else
interactive := true;
Expand Down
3 changes: 1 addition & 2 deletions gap/compile.gi
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ function(name)

# Check input
if not IsString(name) then
ErrorNoReturn("PackageManager: CompilePackage: ",
"<name> must be a string");
ErrorNoReturn("<name> must be a string");
fi;

# Locate the package
Expand Down
16 changes: 5 additions & 11 deletions gap/distro.gi
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,16 @@ function(name, args...)
version := true;
interactive := true;
if not IsString(name) then
ErrorNoReturn("PackageManager: InstallPackageFromName: ",
"<name> must be a string");
ErrorNoReturn("<name> must be a string");
elif Length(args) > 2 then
ErrorNoReturn("PackageManager: InstallPackageFromName: ",
"requires 1 to 3 arguments (not ",
Length(args) + 1, ")");
ErrorNoReturn("requires 1 to 3 arguments (not ", Length(args) + 1, ")");
elif Length(args) = 1 then
if IsString(args[1]) then
version := args[1];
elif args[1] = true or args[1] = false then
interactive := args[1];
else
ErrorNoReturn("PackageManager: InstallPackageFromName:\n",
"2nd argument must be true or false or a version string");
ErrorNoReturn("2nd argument must be true or false or a version string");
fi;
elif Length(args) = 2 then
version := args[1];
Expand All @@ -28,11 +24,9 @@ function(name, args...)

# Check arguments
if not (IsString(version) or version = true) then
ErrorNoReturn("PackageManager: InstallPackageFromName:\n",
"if specified, <version> must be a version string");
ErrorNoReturn("if specified, <version> must be a version string");
elif not (interactive = true or interactive = false) then
ErrorNoReturn("PackageManager: InstallPackageFromName:\n",
"if specified, <interactive> must be true or false");
ErrorNoReturn("if specified, <interactive> must be true or false");
fi;

# Get package URL from name
Expand Down
13 changes: 4 additions & 9 deletions gap/git.gi
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,18 @@ function(url, args...)
elif IsString(args[1]) then
branch := args[1];
else
ErrorNoReturn("PackageManager: InstallPackageFromGit:\n",
"2nd argument should be true, false, or a string");
ErrorNoReturn("2nd argument should be true, false, or a string");
fi;
elif Length(args) = 2 then
interactive := args[1];
branch := args[2];
if not interactive in [true, false] then
ErrorNoReturn("PackageManager: InstallPackageFromGit:\n",
"<interactive> should be true or false");
ErrorNoReturn("<interactive> should be true or false");
elif not IsString(branch) then
ErrorNoReturn("PackageManager: InstallPackageFromGit:\n",
"<branch> should be a string");
ErrorNoReturn("<branch> should be a string");
fi;
elif Length(args) > 2 then
ErrorNoReturn("PackageManager: InstallPackageFromGit:\n",
"requires 1, 2 or 3 arguments (not ",
Length(args) + 1, ")");
ErrorNoReturn("requires 1, 2 or 3 arguments (not ", Length(args) + 1, ")");
fi;

name := PKGMAN_NameOfGitRepo(url);
Expand Down
13 changes: 4 additions & 9 deletions gap/hg.gi
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,18 @@ function(url, args...)
elif IsString(args[1]) then
branch := args[1];
else
ErrorNoReturn("PackageManager: InstallPackageFromHg:\n",
"2nd argument should be true, false, or a string");
ErrorNoReturn("2nd argument should be true, false, or a string");
fi;
elif Length(args) = 2 then
interactive := args[1];
branch := args[2];
if not interactive in [true, false] then
ErrorNoReturn("PackageManager: InstallPackageFromHg:\n",
"<interactive> should be true or false");
ErrorNoReturn("<interactive> should be true or false");
elif not IsString(branch) then
ErrorNoReturn("PackageManager: InstallPackageFromHg:\n",
"<branch> should be a string");
ErrorNoReturn("<branch> should be a string");
fi;
elif Length(args) > 2 then
ErrorNoReturn("PackageManager: InstallPackageFromHg:\n",
"requires 1, 2 or 3 arguments (not ",
Length(args) + 1, ")");
ErrorNoReturn("requires 1, 2 or 3 arguments (not ", Length(args) + 1, ")");
fi;

name := PKGMAN_NameOfHgRepo(url);
Expand Down
3 changes: 1 addition & 2 deletions gap/packageinfo.gi
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ function(info, version...)

# Check input
if not (IsString(info) or IsRecord(info)) then
ErrorNoReturn("PackageManager: InstallPackageFromInfo: ",
"<info> should be a rec or URL");
ErrorNoReturn("<info> should be a rec or URL");
fi;

# Get file from URL
Expand Down
22 changes: 10 additions & 12 deletions tst/PackageManager.tst
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,25 @@ false

# RemovePackage failure
gap> RemovePackage(3);
Error, PackageManager: RemovePackage: <name> must be a string
Error, <name> must be a string
gap> RemovePackage("xyz");
#I Package "xyz" not installed in user package directory
false
gap> RemovePackage("PackageManager");
#I Package "PackageManager" not installed in user package directory
false
gap> RemovePackage("PackageManager", true, false);
Error, PackageManager: RemovePackage: requires 1 or 2 arguments (not 3)
Error, requires 1 or 2 arguments (not 3)
gap> RemovePackage("PackageManager", "please default to yes");
Error, PackageManager: RemovePackage: <interactive> must be true or false
Error, <interactive> must be true or false

# UpdatePackage bad inputs
gap> UpdatePackage(3);
Error, PackageManager: UpdatePackage: <name> must be a string
Error, <name> must be a string
gap> UpdatePackage("io", "yes");
Error, PackageManager: UpdatePackage: <interactive> must be true or false
Error, <interactive> must be true or false
gap> UpdatePackage("io", true, "master", "hello", Group(()), fail, []);
Error, PackageManager: UpdatePackage: requires 1 or 2 arguments (not 7)
Error, requires 1 or 2 arguments (not 7)

# Installing multiple versions
gap> InstallPackage("https://github.com/gap-packages/grpconst/releases/download/v2.6.4/grpconst-2.6.4.tar.gz");
Expand All @@ -43,15 +43,13 @@ false

# InstallPackage input failure
gap> InstallPackage(3);
Error, PackageManager: InstallPackage: <string> must be a string
Error, <string> must be a string
gap> InstallPackage("semigroups", 'y');
Error, PackageManager: InstallPackage:
2nd argument must be true or false or a version string
Error, 2nd argument must be true or false or a version string
gap> InstallPackage("semigroups", "yes", "actually no");
Error, PackageManager: InstallPackageFromName:
if specified, <interactive> must be true or false
Error, if specified, <interactive> must be true or false
gap> InstallPackage("semigroups", ">=3.0", true, "i dont know");
Error, PackageManager: InstallPackage: requires 1 to 3 arguments (not 4)
Error, requires 1 to 3 arguments (not 4)

# Check a bad package directory
gap> baddir := Filename(Directory(PKGMAN_PackageDir()), "badpkg");;
Expand Down
4 changes: 2 additions & 2 deletions tst/compile.tst
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ true

# CompilePackage bad input
gap> CompilePackage(3);
Error, PackageManager: CompilePackage: <name> must be a string
Error, <name> must be a string
gap> CompilePackage(true);
Error, PackageManager: CompilePackage: <name> must be a string
Error, <name> must be a string

# PKGMAN_CompileDir error: no shell
gap> InstallPackage("example");
Expand Down
12 changes: 4 additions & 8 deletions tst/git.tst
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,13 @@ gap> InstallPackageFromGit("https://github.com/gap-packages/orb.git", false, "fi
#I Cloning unsuccessful
false
gap> InstallPackageFromGit("https://github.com/gap-packages/orb.git", "master", true);
Error, PackageManager: InstallPackageFromGit:
<interactive> should be true or false
Error, <interactive> should be true or false
gap> InstallPackageFromGit("https://github.com/a/b.git", false, 3);
Error, PackageManager: InstallPackageFromGit:
<branch> should be a string
Error, <branch> should be a string
gap> InstallPackageFromGit("https://github.com/a/b.git", 3);
Error, PackageManager: InstallPackageFromGit:
2nd argument should be true, false, or a string
Error, 2nd argument should be true, false, or a string
gap> InstallPackageFromGit("https://github.com/a/b.git", true, "master", "lol");
Error, PackageManager: InstallPackageFromGit:
requires 1, 2 or 3 arguments (not 4)
Error, requires 1, 2 or 3 arguments (not 4)

# Install a package from a git repository not ending in .git
gap> InstallPackageFromGit("https://github.com/gap-packages/RegisterPackageTNUMDemo", false);
Expand Down
2 changes: 1 addition & 1 deletion tst/packageinfo.tst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ true

# InstallPackageFromInfo input failure
gap> InstallPackageFromInfo(42);
Error, PackageManager: InstallPackageFromInfo: <info> should be a rec or URL
Error, <info> should be a rec or URL

# InstallPackageFromInfo failure
gap> InstallPackage("http://www.nothing.rubbish/PackageInfo.g");
Expand Down

0 comments on commit 49b40cc

Please sign in to comment.