Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
M1 INFO FSI TP Template
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
LABOUREL Arnaud
M1 INFO FSI TP Template
Commits
d3811e63
Commit
d3811e63
authored
1 year ago
by
LABOUREL Arnaud
Browse files
Options
Downloads
Patches
Plain Diff
added template for TP1
parent
a666665c
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
23
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
TP1/gradlew.bat
+89
-0
89 additions, 0 deletions
TP1/gradlew.bat
TP1/settings.gradle
+2
-0
2 additions, 0 deletions
TP1/settings.gradle
TP1/src/main/java/BlackBox.java
+97
-0
97 additions, 0 deletions
TP1/src/main/java/BlackBox.java
with
188 additions
and
0 deletions
TP1/gradlew.bat
0 → 100644
+
89
−
0
View file @
d3811e63
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if
"
%DEBUG%
"
==
""
@echo
off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if
"
%OS%
"
==
"Windows_NT"
setlocal
set
DIRNAME
=
%~dp0
if
"
%DIRNAME%
"
==
""
set
DIRNAME
=
.
set
APP_BASE_NAME
=
%~n0
set
APP_HOME
=
%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for
%%i
in
(
"
%APP_HOME%
"
)
do
set
APP_HOME
=
%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set
DEFAULT_JVM_OPTS
=
"-Xmx64m"
"-Xms64m"
@rem Find java.exe
if
defined
JAVA_HOME
goto
findJavaFromJavaHome
set
JAVA_EXE
=
java
.exe
%JAVA_EXE%
-version
>
NUL
2
>&
1
if
"
%ERRORLEVEL%
"
==
"0"
goto
execute
echo
.
echo
ERROR
:
JAVA_HOME
is
not
set
and
no
'java'
command
could
be
found
in
your
PATH
.
echo
.
echo
Please
set
the
JAVA_HOME
variable
in
your
environment
to
match
the
echo
location
of
your
Java
installation
.
goto
fail
:findJavaFromJavaHome
set
JAVA_HOME
=
%JAVA
_HOME:
"=
%
set JAVA_EXE=
%JAVA_HOME%
/bin/java.exe
if exist "
%JAVA_EXE%
" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory:
%JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=
%APP_HOME%
\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"
%JAVA_EXE%
"
%DEFAULT_JVM_OPTS%
%JAVA_OPTS%
%GRADLE_OPTS%
"
-Dorg
.gradle.appname
=
%APP_BASE_NAME%
" -classpath "
%CLASSPATH%
" org.gradle.wrapper.GradleWrapperMain
%
*
:end
@rem End local scope for the variables with windows NT shell
if "
%ERRORLEVEL%
"=="
0
" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code
!
if not "" == "
%GRADLE_EXIT_CONSOLE%
" exit 1
exit /b 1
:mainEnd
if "
%OS%
"=="
Windows_NT
" endlocal
:omega
This diff is collapsed.
Click to expand it.
TP1/settings.gradle
0 → 100644
+
2
−
0
View file @
d3811e63
rootProject
.
name
=
'blackbox'
This diff is collapsed.
Click to expand it.
TP1/src/main/java/BlackBox.java
0 → 100644
+
97
−
0
View file @
d3811e63
import
java.io.IOException
;
import
java.nio.file.DirectoryIteratorException
;
import
java.nio.file.DirectoryStream
;
import
java.nio.file.Files
;
import
java.nio.file.Path
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
public
class
BlackBox
{
private
static
final
String
EXECUTABLES_DIRECTORY
=
"executables"
;
private
static
final
String
EXECUTABLE_NAME_PREFIX
=
"check"
;
private
static
final
String
EXECUTABLE_NAME_SUFFIX
=
"exe"
;
private
static
final
String
IMAGES_DIRECTORY
=
"images"
;
public
static
final
String
IMAGES_FILE_SUFFIXES
=
"ppm,pgm,pbm"
;
public
static
final
String
IMAGES_FILE_PREFIX
=
"test"
;
private
final
String
executablesDirectoryPath
;
private
final
String
imagesDirectoryPath
;
public
static
final
String
ANSI_RED
=
"\u001B[31m"
;
public
static
final
String
ANSI_GREEN
=
"\u001B[32m"
;
public
static
final
String
ANSI_RESET
=
"\u001B[0m"
;
public
BlackBox
(
String
executablesDirectoryPath
,
String
imagesDirectoryPath
){
this
.
executablesDirectoryPath
=
executablesDirectoryPath
;
this
.
imagesDirectoryPath
=
imagesDirectoryPath
;
}
private
List
<
Path
>
getImagePaths
()
throws
IOException
{
return
getDirectoryFiles
(
imagesDirectoryPath
,
IMAGES_FILE_PREFIX
+
"*.{"
+
IMAGES_FILE_SUFFIXES
+
"}"
);
}
private
List
<
Path
>
getExecutablePaths
()
throws
IOException
{
return
getDirectoryFiles
(
executablesDirectoryPath
,
EXECUTABLE_NAME_PREFIX
+
"*"
+
EXECUTABLE_NAME_SUFFIX
);
}
private
List
<
Path
>
getDirectoryFiles
(
String
directoryPath
,
String
glob
)
throws
IOException
{
List
<
Path
>
result
=
new
ArrayList
<>();
try
(
DirectoryStream
<
Path
>
stream
=
Files
.
newDirectoryStream
(
Path
.
of
(
directoryPath
),
glob
))
{
for
(
Path
entry:
stream
)
{
result
.
add
(
entry
);
}
}
catch
(
DirectoryIteratorException
ex
)
{
throw
ex
.
getCause
();
}
Collections
.
sort
(
result
);
return
result
;
}
private
boolean
runTest
(
String
executablePath
,
String
...
args
)
{
List
<
String
>
command
=
new
ArrayList
<>();
command
.
add
(
executablePath
);
command
.
addAll
(
List
.
of
(
args
));
ProcessBuilder
processBuilder
=
new
ProcessBuilder
(
command
);
try
{
Process
process
=
processBuilder
.
start
();
return
process
.
waitFor
()
==
0
;
}
catch
(
Exception
exception
){
exception
.
printStackTrace
();
}
return
false
;
}
public
void
runTestSuites
()
throws
IOException
{
for
(
Path
executablePath
:
getExecutablePaths
())
{
runTestSuite
(
executablePath
);
}
}
private
void
printTestResult
(
String
text
,
boolean
isSuccessful
){
String
color
=
isSuccessful
?
ANSI_GREEN
:
ANSI_RED
;
System
.
out
.
println
(
color
+
text
+
ANSI_RESET
);
}
private
void
runTestSuite
(
Path
executablePath
)
throws
IOException
{
String
executableName
=
executablePath
.
getFileName
().
toString
();
System
.
out
.
println
(
"-"
.
repeat
(
70
));
System
.
out
.
println
(
"Test suite for "
+
executableName
);
boolean
testSuiteIsSuccessful
=
true
;
for
(
Path
imagePath
:
getImagePaths
())
{
String
imageName
=
imagePath
.
getFileName
().
toString
();
boolean
expected_result
=
imageName
.
contains
(
"_Y"
);
boolean
actual_result
=
runTest
(
executablePath
.
toString
(),
imagePath
.
toString
());
printTestResult
(
executableName
+
" "
+
imageName
+
", expected: "
+
expected_result
+
",\tactual: "
+
actual_result
,
actual_result
==
expected_result
);
if
(
actual_result
!=
expected_result
)
{
testSuiteIsSuccessful
=
false
;
}
}
printTestResult
(
"Test suite for "
+
executableName
+
" successful: "
+
testSuiteIsSuccessful
,
testSuiteIsSuccessful
);
}
public
static
void
main
(
String
[]
args
)
throws
IOException
{
new
BlackBox
(
EXECUTABLES_DIRECTORY
,
IMAGES_DIRECTORY
).
runTestSuites
();
}
}
This diff is collapsed.
Click to expand it.
Prev
1
2
Next
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment