fix: problem config is not properly parsed
This commit is contained in:
parent
1dfe296820
commit
aaac7f57a0
@ -54,6 +54,29 @@ var (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (c *ConfigRuntime) InitWithDefault(fallback *ConfigRuntime) {
|
||||||
|
if c.Validate() != nil {
|
||||||
|
*c = *fallback
|
||||||
|
} else {
|
||||||
|
c.FillDefault()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *ConfigRuntime) FillDefault() {
|
||||||
|
if c.SoftMemoryLimit <= 0 {
|
||||||
|
// default to memory limit
|
||||||
|
c.SoftMemoryLimit = c.MemoryLimit
|
||||||
|
}
|
||||||
|
if c.NProcLimit <= 0 {
|
||||||
|
// default to not limited
|
||||||
|
c.NProcLimit = 0
|
||||||
|
}
|
||||||
|
if c.WriteFileLimit <= 0 {
|
||||||
|
// default to 1mb
|
||||||
|
c.WriteFileLimit = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (c *ConfigRuntime) Validate() error {
|
func (c *ConfigRuntime) Validate() error {
|
||||||
if c.TimeLimit <= 0 {
|
if c.TimeLimit <= 0 {
|
||||||
return errors.New("time limit <= 0")
|
return errors.New("time limit <= 0")
|
||||||
@ -222,16 +245,11 @@ func (s *service) ParseConfig(meta *JudgeMeta, skipCheck bool) (*Config, error)
|
|||||||
|
|
||||||
// fill default
|
// fill default
|
||||||
for idx := range config.Languages {
|
for idx := range config.Languages {
|
||||||
if config.Languages[idx].Runtime.Compile.Validate() != nil {
|
config.Languages[idx].Runtime.Compile.InitWithDefault(&DefaultCompileRuntime)
|
||||||
config.Languages[idx].Runtime.Compile = DefaultCompileRuntime
|
config.Languages[idx].Runtime.Check.InitWithDefault(&DefaultCheckRuntime)
|
||||||
}
|
config.Languages[idx].Runtime.Run.FillDefault()
|
||||||
if config.Languages[idx].Runtime.Check.Validate() != nil {
|
|
||||||
config.Languages[idx].Runtime.Check = DefaultCheckRuntime
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if config.Prebuild.Validate() != nil {
|
|
||||||
config.Prebuild = DefaultPrebuildRuntime
|
|
||||||
}
|
}
|
||||||
|
config.Prebuild.InitWithDefault(&DefaultPrebuildRuntime)
|
||||||
|
|
||||||
if skipCheck {
|
if skipCheck {
|
||||||
return config, nil
|
return config, nil
|
||||||
|
Loading…
Reference in New Issue
Block a user